ppstream 2014-7-8 21:23
nginx 如何限制同一ip connection 連接數
nginx 限制ip並發數,也是說限制同一個ip同時連接服務器的數量。<br><br>通過下面nginx模塊的使用,我們可以設置一旦並發鏈接數超過我們的設置,將返回503錯誤給對方。<br><br>這樣可以非常有效的防止CC攻擊。在配合iptables防火牆,基本上CC攻擊就可以無視了。 <br><br>Nginx限制ip鏈接數,Nginx如何限制並發數,同1個IP,nginx怎麼限制流量/限制帶寬?<br><br>如何Nginx限制同一個ip的連接數,限制並發數目:<br><br>2016.11.16 更新:nginx自從1.1.8版本發佈後將limit_conn更換為limit_conn_zone 。對應則需要修改設定檔。<br><br>1.添加 limit_zone<br>這個變量只能在http使用<br><br>#vi /etc/nginx/nginx.conf<br>[quote]<br>limit_conn_zone $binary_remote_addr zone=perip:10m;<br>limit_req_zone $binary_remote_addr zone=peripreq:10m rate=1r/s;<br>[/quote]<br><br>2.添加 limit_conn<br>這個變量可以在http, server, location使用<br>我只限制一個站點,所以添加到 server 裡面<br>限制一個IP 只能有 20個 Connection<br><br># vi /etc/nginx/conf.d/adj.conf<br>[quote]<br>limit_conn perip 20;<br><span id="result_box" class="short_text" lang="zh-TW"><span title="#同一个IP只许建立3个连接">#同一個IP只許建立20個連接</span></span><br>limit_req zone=peripreq burst=200 nodelay;<br><span id="result_box" class="short_text" lang="zh-TW"><span title="#每秒请求120个,超过返回503">#每秒請求200個,超過返回503</span></span><br>[/quote]<br><br>3. 重新啟動 Nginx 就可以了<br><br>再來就是壓力測試...請參考這篇說明:<br><a href="http://dz.adj.idv.tw/thread-171-1-1.html" target=_blank>http://dz.adj.idv.tw/thread-171-1-1.html</a><br>