nginx 限制ip併發數,也是說限制同一個ip同時連接伺服器的數量。如何Nginx限制同一個ip的連接數,限制併發數目,限制流量/限制頻寬? 通過下面nginx模組的使用,我們可以設置一旦併發連結數超過我們的設置,將返回503錯誤給對方。這樣可以非常有效的防止CC攻擊。在配合 iptables防火牆,基本上CC攻擊就可以無視了。Nginx限制ip連結數,Nginx如何限制併發數,同1個IP,nginx怎麼限制流量/限制頻寬?請看下文:

nginx 限制ip併發數,nginx限制IP連結數範例參考:

limit_zone   ctohome_zone  $binary_remote_addr  20m;
limit_req_zone  $binary_remote_addr  zone=ctohome_req_zone:20m   rate=2r/s
server  {
        listen          *:80;
        server_name     www.ctohome.com .ctohome.com ;

        location / {
                proxy_pass http://1.2.3.4;
                include vhosts/conf.proxy_cache;
        }

        location ~ .*\.(php|jsp|cgi|phtml|asp|aspx)?$    {
               limit_conn   ctohome_zone  2;
               limit_req   zone=ctohome_req_zone  burst=3;
               proxy_pass http://4.3.2.1;
               include vhosts/conf.proxy_no_cache;
        }
}

 

 

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

1.添加limit_zone 
這個變數只能在http使用
vi /usr/local/nginx/conf/nginx.conf
limit_zone ctohome_zone $remote_addr 10m;

2.添加limit_conn 
這個變數可以在http, server, location使用
我只限制一個網站,所以添加到server裡面
vi /usr/local/nginx/conf/host/www.ctohome.com.conf
limit_conn   ctohome_zone 2;

3.重啟nginx 
killall -HUP nginx

Nginx限制流量/限制頻寬?

關於limit_zone:http://wiki.nginx.org/NginxHttpLimitZoneModule
關於limit_rate和limit_conn:http://wiki.nginx.org/NginxHttpCoreModule
nginx可以通過HTTPLimitZoneModule和HTTPCoreModule兩個元件來對目錄進行限速。

http {
limit_zone   one  $binary_remote_addr  10m;
server {
location /download/ {
limit_conn  ctohome_zone 2;

  limit_rate 300k; 
}
}
}

limit_zone,是針對每個IP定義一個存儲session狀態的容器。這個示例中定義了一個10m的容器,按照32bytes/session,可以處理320000個session。

limit_conn ctohome_zone 2;
限制每個IP只能發起2個併發連接。

limit_rate 300k;
對每個連接限速300k. 注意,這裡是對連接限速,而不是對IP限速。如果一個IP允許兩個併發連接,那麼這個IP就是限速limit_rate×2。
ngx_http_limit_zone_module

原文:http://www.ctohome.com/FuWuQi/f3/536.html

點閱: 166

By admin

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料