nginx - 讓網站避免大量的壓測方法
IPFS
使用 nginx 為主要的 Web 的服務
先安裝 nginx
sudo apt install nginx
修改 nginx 的設定
在原來的 server 之前寫入兩段設定 以下配置將限制來自單個IP地址的請求的處理速率,同時限制虛擬服務器的請求處理速率 可以避免大量的壓測,以及基本的 DDoS 的防護
limit_req_zone $binary_remote_addr zone=lr_zone:10m rate=1r/s; limit_req_zone $server_name zone=perserver:10m rate=10r/s;
Fail2ban 的設置
安裝 fail2ban
sudo apt install fail2ban
建立一個 Fail2ban 的 Filter 用於 nginx req limit
建立 /etc/fail2ban/filter.d/nginx-req-limit.conf:
# Fail2Ban configuration file # # supports: ngx_http_limit_req_module module [Definition] failregex = limiting requests, excess:.* by zone.*client: <HOST> ignoreregex =
添加此 Filter 設定
設置文件 /etc/fail2ban/jail.local
[nginx-req-limit] enabled = true filter = nginx-req-limit action = iptables-multiport[name=nginx-req-limit, port="http,https", protocol=tcp] logpath = /var/log/nginx/*error.log findtime = 600 bantime = 2700 maxretry = 10
設定後重啟 Fail2ban 即可
針對 Fail2ban 的黑名單門檻
就看在多少區間(findtime)內執行幾次(maxretry)
上面就設定完成
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!