web-dev-qa-db-ja.com

DreamHostVPSのNginx構成

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をルーフから駆動して、再起動をトリガーするのを防ぐことです。

1
kingkool68

問題は、ゾーンにaddrという名前を付けたが、それを_limit_per_ip_と呼んだことです。これは、選択した名前ではありません。

_limit_per_ip_ディレクティブでゾーン名をaddrから_limit_conn_zone_に変更するか、_limit_per_ip_でゾーン名を_limit_conn_からaddrに変更します。 )__ディレクティブ。

2
Michael Hampton