字體:  

nginx 如何限制同一ip connection 連接數

ppstream 發表於: 2014-7-08 21:23 來源: ADJ網路控股集團


nginx 限制ip並發數,也是說限制同一個ip同時連接服務器的數量。

通過下面nginx模塊的使用,我們可以設置一旦並發鏈接數超過我們的設置,將返回503錯誤給對方。

這樣可以非常有效的防止CC攻擊。在配合iptables防火牆,基本上CC攻擊就可以無視了。

Nginx限制ip鏈接數,Nginx如何限制並發數,同1個IP,nginx怎麼限制流量/限制帶寬?

如何Nginx限制同一個ip的連接數,限制並發數目:

2016.11.16 更新:nginx自從1.1.8版本發佈後將limit_conn更換為limit_conn_zone 。對應則需要修改設定檔。

1.添加 limit_zone
這個變量只能在http使用

#vi /etc/nginx/nginx.conf

QUOTE:


limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_req_zone  $binary_remote_addr zone=peripreq:10m rate=1r/s;


2.添加 limit_conn
這個變量可以在http, server, location使用
我只限制一個站點,所以添加到 server 裡面
限制一個IP 只能有 20個 Connection

# vi /etc/nginx/conf.d/adj.conf

QUOTE:


limit_conn perip 20;
#同一個IP只許建立20個連接
limit_req zone=peripreq burst=200 nodelay;
#每秒請求200個,超過返回503


3. 重新啟動 Nginx 就可以了

再來就是壓力測試...請參考這篇說明:
http://dz.adj.idv.tw/thread-171-1-1.html