在Nginx中,你可以使用ngx_http_limit_req_module
模塊來限制訪問速率。這個模塊允許你設置請求速率限制,以防止惡意用戶或爬蟲對服務器造成過大壓力。以下是如何配置Nginx以限制訪問速率的步驟:
安裝Nginx(如果尚未安裝):
sudo apt update
sudo apt install nginx
編輯Nginx配置文件:
通常,Nginx的主配置文件位于/etc/nginx/nginx.conf
,但你也可以在特定的虛擬主機配置文件中進行設置。例如,編輯/etc/nginx/sites-available/default
:
sudo nano /etc/nginx/sites-available/default
添加限速配置:
在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)。保存并退出編輯器:
Ctrl+X
Y
Enter
測試Nginx配置:
sudo nginx -t
重新加載Nginx:
sudo systemctl reload nginx
現在,Nginx將會根據配置限制訪問速率。你可以根據需要調整rate
和burst
參數以適應你的具體需求。