DreamhostVPSのnginxでサイトを起動して実行しました。涼しい。サイト全体のnginxconfファイル(/dh/nginx/servers/httpd-psxxxxxx/nginx.conf)のhttpブロックに以下を追加して、IPごとの接続数を制限したいと思いました。
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn limit_per_ip 50;
Nginxをリロードすると、すべてが正常に機能し、ダンディになります。
サーバーを再起動すると、nginxは起動に失敗します。もう一度nginxファイルに移動し、IPごとの接続数の制限について2行をコメントアウトし、nginxをリロードしてから、戻って2行のコメントを解除してから、nginxをリロードする必要があります。その後、すべてが順調です。
サーバーの再起動後にnginxを手動でリロードしようとすると、次のエラーメッセージが表示されます。
webserver... nginx: [emerg] zero size shared memory zone "limit_per_ip"
failed!
私は何が間違っているのですか?私がやりたいのは、単一のIPがすべての接続を占有し、VPSのRAMをルーフから駆動して、再起動をトリガーするのを防ぐことです。
問題は、ゾーンにaddr
という名前を付けたが、それを_limit_per_ip
_と呼んだことです。これは、選択した名前ではありません。
_limit_per_ip
_ディレクティブでゾーン名をaddr
から_limit_conn_zone
_に変更するか、_limit_per_ip
_でゾーン名を_limit_conn
_からaddr
に変更します。 )__ディレクティブ。