Назад | Перейти на главную страницу

Конфигурация Nginx на DreamHost VPS

Я запустил свой сайт на nginx на моем Dreamhost VPS. Прохладно. Я хотел ограничить количество подключений на каждый IP-адрес, добавив следующее в блок http общесайтового файла конфигурации nginx (/dh/nginx/servers/httpd-psxxxxxx/nginx.conf):

limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn limit_per_ip 50;

Перезагрузил nginx, и все работает нормально и хорошо.

Когда сервер перезагружается, nginx не запускается. Мне нужно снова перейти к файлу nginx, закомментировать две строки об ограничении количества подключений на IP, перезагрузить nginx, затем вернуться и снова раскомментировать две строки, а затем перезагрузить nginx. После этого все нормально.

Если я попытаюсь вручную перезагрузить nginx после перезагрузки сервера, я получаю следующее сообщение об ошибке:

webserver... nginx: [emerg] zero size shared memory zone "limit_per_ip"
failed!

Что я делаю не так? Все, что я хочу сделать, это не допустить, чтобы один IP-адрес перегружал все соединения и перегружал ОЗУ на моем VPS через крышу, что вызывает перезагрузку.

Проблема в том, что вы назвали свою зону addr но тогда вы назвали это limit_per_ip, которое не является тем именем, которое вы выбрали.

Либо измените название зоны с addr к limit_per_ip в limit_conn_zone директиве или измените имя зоны с limit_per_ip к addr в limit_conn директива.