0

IPごとの接続とリクエストを制限しようとしています。次に、この制限から除外する検索ボットのホワイトリストを追加します。これは、この投稿で説明したHttpLimitConnModuleを使用して実行できます。次のように

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」ゾーンを別の名前で再度追加することです。2つのモジュール間でゾーンを共有する方法はありますか?

4

1 に答える 1

1

いいえ。それらは異なるデータを保存します。

于 2012-06-26T13:12:15.630 に答える