欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nginx 429狀態(tài)碼排查與處理方式

 更新時(shí)間:2025年07月02日 08:53:07   作者:alden_ygq  
這篇文章主要介紹了nginx 429狀態(tài)碼排查與處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

 Nginx 返回 429 Too Many Requests 錯(cuò)誤表示客戶端在短時(shí)間內(nèi)發(fā)送了過多請(qǐng)求,觸發(fā)了Nginx的請(qǐng)求限流規(guī)則。

這通常是Nginx配置了請(qǐng)求頻率限制(limit_req 模塊)或連接數(shù)限制(limit_conn 模塊)的結(jié)果。

以下是排查和解決方案:

1.確認(rèn)限流配置位置

在Nginx配置文件中(通常是 nginx.conf 或 sites-enabled/ 下的文件),檢查以下配置:

http {
    # 定義限流區(qū)域(通常放在 http 塊中)
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; # 示例:每秒10請(qǐng)求

    server {
        location / {
            # 應(yīng)用限流規(guī)則
            limit_req zone=one burst=20 nodelay; # 關(guān)鍵配置行
        }
    }
}
  • limit_req_zone: 定義限流區(qū)域(名稱、內(nèi)存大小、限流速率)。
  • limit_req: 在 location 或 server 塊中啟用限流。

2.調(diào)整限流參數(shù)

根據(jù)實(shí)際需求修改以下參數(shù):

  • rate: 允許的平均請(qǐng)求速率。
  • 例如 rate=5r/s(每秒5次)或 rate=30r/m(每分鐘30次)。
  • burst: 允許的突發(fā)請(qǐng)求數(shù)(臨時(shí)超過 rate 的請(qǐng)求會(huì)被放入隊(duì)列)。
  • nodelay: 突發(fā)請(qǐng)求立即處理(不延遲),但超過 burst 的請(qǐng)求會(huì)被拒絕。

示例調(diào)整:

# 放寬限流:每秒20請(qǐng)求 + 允許40個(gè)突發(fā)請(qǐng)求
limit_req_zone $binary_remote_addr zone=one:10m rate=20r/s;
location / {
    limit_req zone=one burst=40 nodelay;
}

3.檢查其他可能的限流配置

  • limit_conn (連接數(shù)限制):
limit_conn_zone $binary_remote_addr zone=addr:10m;
location / {
    limit_conn addr 10; # 每個(gè)IP最多10個(gè)并發(fā)連接
}

多級(jí)限流:檢查是否在多個(gè)位置(如 server、location)重復(fù)配置了限流。

4.定位觸發(fā)限流的客戶端

查看Nginx錯(cuò)誤日志,找到觸發(fā)429的客戶端IP:

grep "429" /var/log/nginx/error.log

輸出示例:

2023/10/01 12:00:00 [error] 12345#0: *100000 limiting requests, client: 192.168.1.1, ...

5.臨時(shí)禁用限流(測(cè)試用)

若需確認(rèn)問題,可注釋掉配置中的 limit_req 和 limit_conn 行,并重載Nginx:

sudo nginx -s reload

6.優(yōu)化建議

區(qū)分靜態(tài)資源:對(duì)靜態(tài)文件(如圖片/CSS)禁用限流:

location ~* \.(jpg|css|js)$ {
    limit_req off; # 不限制靜態(tài)資源
}

按業(yè)務(wù)分層限流:對(duì)API路徑設(shè)置更嚴(yán)格的限制:

location /api/ {
    limit_req zone=api_zone;
}

增大內(nèi)存區(qū)域:如果IP很多,增加 limit_req_zone 的內(nèi)存(如 zone=one:20m)。

7.高級(jí)場(chǎng)景:動(dòng)態(tài)限流

如果需要?jiǎng)討B(tài)調(diào)整限流規(guī)則(例如根據(jù)業(yè)務(wù)狀態(tài)),可結(jié)合OpenResty + Lua腳本:

location / {
    access_by_lua_block {
        -- 自定義Lua腳本實(shí)現(xiàn)動(dòng)態(tài)限流
    }
}

總結(jié)步驟

  • 檢查Nginx配置:找到 limit_req 或 limit_conn 的位置。
  • 調(diào)整速率/突發(fā)值:根據(jù)業(yè)務(wù)需求優(yōu)化參數(shù)。
  • 查日志確認(rèn)觸發(fā)源:分析是否由正常流量或爬蟲導(dǎo)致。
  • 重載配置:修改后執(zhí)行 sudo nginx -s reload。

注意:

過嚴(yán)的限流會(huì)影響用戶體驗(yàn),過松則可能無法保護(hù)后端。建議通過壓測(cè)確定合理閾值。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 504?Gateway?Timeout網(wǎng)關(guān)超時(shí)詳細(xì)解決方法

    504?Gateway?Timeout網(wǎng)關(guān)超時(shí)詳細(xì)解決方法

    這篇文章主要介紹了504?Gateway?Timeout網(wǎng)關(guān)超時(shí)詳細(xì)解決方法的相關(guān)資料,504GatewayTimeout是HTTP狀態(tài)碼,表示網(wǎng)關(guān)或代理服務(wù)器在等待上游服務(wù)器響應(yīng)時(shí)超時(shí),常見觸發(fā)場(chǎng)景包括Nginx超時(shí)、后端性能問題、網(wǎng)絡(luò)延遲和服務(wù)器資源耗盡,需要的朋友可以參考下
    2025-02-02
  • nginx日志過大問題解決

    nginx日志過大問題解決

    nginx默認(rèn)的日志在logs/access.log,并且是一直累加寫入,時(shí)間長(zhǎng)了就會(huì)非常大,本文主要介紹了nginx日志過大問題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解

    nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解

    這篇文章主要為大家介紹了nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Linux查看nginx安裝目錄和配置文件路徑的實(shí)現(xiàn)

    Linux查看nginx安裝目錄和配置文件路徑的實(shí)現(xiàn)

    本文主要介紹了Linux查看nginx安裝目錄和配置文件路徑的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 為何要小心Nginx的add_header指令詳解

    為何要小心Nginx的add_header指令詳解

    這篇文章主要給大家介紹了關(guān)于為何說要小心Nginx的add_header指令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 5種nginx負(fù)載均衡配置方法分享

    5種nginx負(fù)載均衡配置方法分享

    這篇文章主要介紹了5種nginx負(fù)載均衡配置方法分享,分別是nginx自帶的3種方法和2種第三方配置方法,需要的朋友可以參考下
    2014-07-07
  • Nginx配置PATHINFO隱藏thinkphp index.php

    Nginx配置PATHINFO隱藏thinkphp index.php

    這篇文章主要介紹了Nginx配置PATHINFO隱藏thinkphp index.php,本文直接給出配置示例,需要的朋友可以參考下
    2015-07-07
  • 一文詳解Nginx的訪問限制與訪問控制

    一文詳解Nginx的訪問限制與訪問控制

    訪問限制是一種防止惡意訪問的常用手段,可以指定同一IP地址在固定時(shí)間內(nèi)的訪問次數(shù),訪問控制是控制客戶端對(duì)服務(wù)端的訪問,并非僅限制請(qǐng)求次數(shù),而是允許某些請(qǐng)求或者直接拒絕某些請(qǐng)求,本文給大家具體介紹了Nginx的訪問限制與訪問控制,需要的朋友可以參考下
    2024-09-09
  • Linux中Nginx的防盜鏈和優(yōu)化的實(shí)現(xiàn)代碼

    Linux中Nginx的防盜鏈和優(yōu)化的實(shí)現(xiàn)代碼

    今天是周末小編在值班哈,很開森,工作使我快樂,本文重點(diǎn)給大家介紹Linux中Nginx的防盜鏈和優(yōu)化問題及實(shí)現(xiàn)代碼,需要的朋友跟隨小編一起看看吧
    2021-06-06
  • Nginx的URL重寫及IP訪問控制詳解

    Nginx的URL重寫及IP訪問控制詳解

    Nginx 是一個(gè)高性能的 HTTP 服務(wù)器和反向代理服務(wù)器,廣泛應(yīng)用于 Web 服務(wù)中,除了基本的 HTTP 服務(wù)功能外, Nginx 還提供了許多強(qiáng)大的功能,如 URL 重寫、 IP 訪問控制和基本認(rèn)證,本文小編給大家詳細(xì)介紹了Nginx的URL重寫及IP訪問控制,需要的朋友可以參考下
    2025-05-05

最新評(píng)論