在CentOS上使用Nginx限制訪問頻率,可以通過配置ngx_http_limit_req_module
模塊來實現。以下是具體的步驟:
如果你還沒有安裝Nginx,可以使用以下命令進行安裝:
sudo yum install epel-release
sudo yum install nginx
安裝完成后,啟動Nginx服務:
sudo systemctl start nginx
編輯Nginx的配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
。
假設你想限制每個IP地址每分鐘最多訪問10次,可以添加如下配置:
http {
# 其他配置...
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/m;
server {
listen 80;
server_name example.com;
location / {
limit_req zone=mylimit burst=5 nodelay;
# 其他location配置...
}
}
}
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/m;
$binary_remote_addr
:使用客戶端的IP地址作為鍵。zone=mylimit:10m
:定義一個名為mylimit
的區域,大小為10MB。rate=10r/m
:限制速率為每分鐘10次請求。limit_req zone=mylimit burst=5 nodelay;
zone=mylimit
:指定使用之前定義的區域。burst=5
:允許突發請求達到5個,超過這個數量的請求會被延遲處理。nodelay
:不延遲處理突發請求,立即返回429狀態碼(Too Many Requests)。保存配置文件后,重新加載Nginx以應用更改:
sudo systemctl reload nginx
你可以通過多次快速訪問你的網站來測試限制是否生效。如果超過限制,Nginx會返回429狀態碼。
ngx_http_limit_req_module
模塊。rate
和burst
參數。通過以上步驟,你可以在CentOS上使用Nginx有效地限制訪問頻率。