Re: Невозможно сделать reload при некоторых изменениях listen

Валентин Бартенев vbart на nginx.com
Ср Авг 15 16:23:30 UTC 2018


On Wednesday 15 August 2018 01:24:07 simonovbs wrote:
> Привет! 
> Когда в конфигурация меняется listen, пример:
> listen 80; -> listen 127.0.0.1:80;
> reload перестает работать, при этом 
> # nginx -t
> nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
> nginx: configuration file /etc/nginx/nginx.conf test is successful
> # systemctl reload nginx
> # tail /var/log/nginx/error.log
> 2018/08/15 07:55:23 [emerg] 195377#0: bind() to 127.0.0.1:27183 failed (98:
> Address already in use)
> 2018/08/15 07:55:23 [emerg] 195377#0: bind() to 127.0.0.1:27183 failed (98:
> Address already in use)
> 2018/08/15 07:55:23 [emerg] 195377#0: bind() to 127.0.0.1:27183 failed (98:
> Address already in use)
> 2018/08/15 07:55:23 [emerg] 195377#0: bind() to 127.0.0.1:27183 failed (98:
> Address already in use)
> 2018/08/15 07:55:23 [emerg] 195377#0: bind() to 127.0.0.1:27183 failed (98:
> Address already in use)
> 2018/08/15 07:55:23 [emerg] 195377#0: still could not bind()

Так работают сокеты в Linux.

См. https://trac.nginx.org/nginx/ticket/1457



> 
> Логичный выход из ситуации сделать restart. Печально что nginx -t не выдает
> ошибок, в связи с чем вопрос: можно ли как-нибудь идентифицировать ситуацию
> когда reload сломан кроме как по логам?
> 
> Воспроизвелось на nginx/1.12.2, nginx/1.13.12, CentOS Linux release 7.5.1804
> 

У сигналов обратной связи нет, поэтому необходимо всегда смотреть логи.

--
Валентин Бартенев


Подробная информация о списке рассылки nginx-ru