在Debian上的Nginx中,您可以使用ngx_http_limit_req_module
模塊來限制訪問頻率。以下是如何設置和使用此模塊的步驟:
確保已安裝Nginx: 如果尚未安裝,請運行以下命令:
sudo apt-get update
sudo apt-get install nginx
創建一個共享內存區域以存儲請求計數:
在nginx.conf
文件中添加以下行:
http {
...
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
...
}
這里,我們使用客戶端的IP地址作為鍵來限制請求速率。zone=mylimit:10m
定義了一個名為mylimit
的區域,大小為10MB。rate=1r/s
表示每秒允許的最大請求數為1。
在需要限制訪問頻率的server
或location
塊中使用limit_req
指令:
server {
...
location / {
...
limit_req zone=mylimit burst=5 nodelay;
...
}
}
這里,burst=5
表示允許短時間內的突發請求達到5個,超過這個數量的請求將被延遲處理。nodelay
表示不對這些請求進行延遲處理。
重新加載Nginx配置以應用更改:
sudo nginx -t
sudo systemctl reload nginx
現在,Nginx將根據您設置的限制來限制訪問頻率。如果請求超過了允許的速率,Nginx將返回HTTP 503(Service Temporarily Unavailable)錯誤。