nginx做防ddos攔截的方法:
在nginx.conf中新增配置,限制每秒的請求數,可通過ngx_http_limit_req_module模塊的漏桶原理來限制單位時間內請求數,一旦單位時間內請求數超過限制就會返回503錯誤,添加配置如下:
http {limit_req_zone $binary_remote_addr zone=one:10m rate=100r/s; //觸發條件,所有訪問ip 限制每秒100個請求
...
server {
...
location ~ \.php$ {
limit_req zone=one burst=5 nodelay; //執行的動作,通過zone名字對應
}
}
}
如果是限制單個IP的連接數,配置如下:
http {limit_conn_zone $binary_remote_addr zone=addr:10m; //觸發條件
...
server {
...
location /download/ {
limit_conn addr 2; // 限制同一時間內2個連接,超出的連接返回503
}
}
}