
答案1
您當然可以使用 limit_req_zone 模組在 nginx 中執行此操作。
在 nginx.conf 中設定一個區域:
limit_req_zone $binary_remote_addr zone=one:1000m rate=100r/m;
你也可以用tooX_Forwarded_For
來代替binary_remote_addr
。
在您的網站配置位置區塊中,只需引用該區域:
limit_req zone=one burst=10 nodelay;
文件: http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
答案2
您可以使用fail2ban並使用以下帶有nginx的監獄來限製配置錯誤的機器人
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 並將其加到底部
[nginx-req-limit]
enabled = true
filter = nginx-req-limit
action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp]
logpath = /var/log/nginx/*error.log
findtime = 600
bantime = 7200
maxretry = 10