nginx reload & restart

Maxim Dounin mdounin на mdounin.ru
Пн Апр 18 17:02:48 UTC 2016


Hello!

On Mon, Apr 18, 2016 at 06:50:27PM +0300, Анатолий Коростелев wrote:

> Здравствуйте!
> 
> Подскажите, пожалуйста, есть ли список параметров в конфигурационном файле
> nginx, при изменении/добавлении/удаления которых достаточно и беспроблемно
> использовать nginx reload, а не nginx restart/upgrade? В моей конфигурации
> на множество серверов прилетают обновления конфигурационных файлов nginx и
> хотелось бы минимизировать использовать restart/upgrade.

Проблемы с reload'ом могут быть в случаях, когда затрагиваются 
параметры, разделяемые между многими процессами.  В частности:

- При изменениях зон разделяемой памяти - нельзя менять размеры 
  существующих зон и/или их использование (скажем, в limit_req 
  нельзя поменять одну переменную на другую).  При этом можно 
  создать новую зону с произвольными параметрами - при этом в старых 
  рабочих процессах останется старая зона, а в новых - будет 
  использоваться уже новая.

- На Linux'е могут быть проблемы с изменением слушающих сокетов, 
  т.к. скажем слушать на *:80 и 127.0.0.1:80 одновременно Linux не 
  разрешает.  Соответственно, при замене в конфигах одного на 
  другое reload будет невозможен, т.к. Linux не разрешит сделать 
  bind() для сокета из новой конфигурации

Если nginx не может сделать reload по каким либо причинам, в том 
числе - по перечисленным выше, а равно из-за каких-либо ошибок, - 
об этом будет написано в логе, а сам nginx останется работать с 
прежней конфигурацией.

> В основном, мой вопрос касается в случае обновления файлов ssl-сертификата и
> ключа, достаточно будет в этом случае reload или будут подводные камни?

Каких-либо специфических проблем при обновлении сертификатов - 
быть не должно.  Однако в любом случае могут возникнуть 
непредвиденные проблемы - e.g., может банально кончится память.  
Т.е. в любом случае - стоит смотреть в логи.  Использовать 
restart/upgrade для обновления сертификатов - однозначно не надо.

-- 
Maxim Dounin
http://nginx.org/



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