溫馨提示×

Nginx如何限制訪問速率

小樊
37
2025-10-19 18:14:46
欄目: 編程語言

在Nginx中,你可以使用ngx_http_limit_req_module模塊來限制訪問速率。這個模塊允許你設置請求速率限制,以防止惡意用戶或爬蟲對服務器造成過大壓力。以下是如何配置Nginx以限制訪問速率的步驟:

  1. 安裝Nginx(如果尚未安裝):

    sudo apt update
    sudo apt install nginx
    
  2. 編輯Nginx配置文件: 通常,Nginx的主配置文件位于/etc/nginx/nginx.conf,但你也可以在特定的虛擬主機配置文件中進行設置。例如,編輯/etc/nginx/sites-available/default

    sudo nano /etc/nginx/sites-available/default
    
  3. 添加限速配置: 在server塊中添加以下配置:

    http {
        # 其他配置...
    
        limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
    
        server {
            listen 80;
            server_name example.com;
    
            location / {
                limit_req zone=mylimit burst=5 nodelay;
                # 其他配置...
            }
        }
    }
    

    解釋:

    • limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

      • $binary_remote_addr:使用客戶端的IP地址作為鍵。
      • zone=mylimit:10m:定義一個名為mylimit的區域,大小為10MB。
      • rate=1r/s:限制速率為每秒1個請求。
    • limit_req zone=mylimit burst=5 nodelay;

      • zone=mylimit:使用之前定義的區域。
      • burst=5:允許突發請求達到5個,超過這個數量的請求將被延遲處理。
      • nodelay:對于突發請求,不進行延遲處理,立即返回429狀態碼(Too Many Requests)。
  4. 保存并退出編輯器

    Ctrl+X
    Y
    Enter
    
  5. 測試Nginx配置

    sudo nginx -t
    
  6. 重新加載Nginx

    sudo systemctl reload nginx
    

現在,Nginx將會根據配置限制訪問速率。你可以根據需要調整rateburst參數以適應你的具體需求。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女