2012-06-24 17 views
0

之間的共享區域我試圖限制每個IP的連接和請求,然後爲搜索機器人添加白名單以排除此限制。這可以使用HttpLimitConnModule來完成,正如我在post上所描述的那樣。如下Nginx添加HttpLimitConnModule和HttpLimitReqModule

http{ 
    geo $notabot { 
     default 1; 
     #google 
     64.233.160.0/19 0; 
     65.52.0.0/14 0; 
     66.102.0.0/20 0; 
     66.249.64.0/19 0; 
     72.14.192.0/18 0; 
     74.125.0.0/16 0; 
     209.85.128.0/17 0; 
     216.239.32.0/19 0; 
     #M$ 
     64.4.0.0/18 0; 
     157.60.0.0/16 0; 
     157.54.0.0/15 0; 
     157.56.0.0/14 0; 
     207.46.0.0/16 0; 
     207.68.192.0/20 0; 
     207.68.128.0/18 0; 
     #yahoo 
     8.12.144.0/24 0; 
     66.196.64.0/18 0; 
     66.228.160.0/19 0; 
     67.195.0.0/16 0; 
     74.6.0.0/16 0; 
     68.142.192.0/18 0; 
     72.30.0.0/16 0; 
     209.191.64.0/18 0; 
     #My IPs 
     127.0.0.1/32 0; 
     123.456.0.0/28 0; #example for your server CIDR 
    } 
    limit_req_zone $binary_remote_addr zone=notabot:5m rate=200r/s; 
    limit_req zone=notabot burst=200 nodelay; 

然而,當我同區 「notabot」 添加到HttpLimitConnModule如下

limit_conn_zone $binary_remote_addr zone=notabot:5m; 
limit_conn_log_level notice; 
limit_conn notabot 20; 

Nginx的產生配置錯誤:

nginx: [emerg] the shared memory zone "notabot" is already declared for a different use in /server/nginx.conf:116 

對於這項工作的唯一方法是用另一個名字再次添加「notabot」區域。有沒有辦法在兩個模塊之間共享一個區域?

回答

1

否。他們存儲不同的數據。