Когда nginx перезагружается, главный процесс сначала проверяет правильность синтаксиса, затем пытается применить новую конфигурацию. Если это удается, он запускает новые рабочие процессы и отправляет сообщения старым рабочим процессам с просьбой завершить работу корректно.
Когда главный процесс отправляет сообщение о завершении работы старым рабочим процессам — параллельно с созданием новых рабочих процессов или только после запуска новых рабочих процессов?
Хотите узнать, если перезагрузка nginx займет больше времени, сможет ли он обрабатывать новые соединения за это время?
решение1
Чтобы nginx перечитал файл конфигурации, главному процессу необходимо отправить сигнал HUP. Главный процесс сначала проверяет правильность синтаксиса, затем пытается применить новую конфигурацию, то есть открыть файлы журналов и новые прослушиваемые сокеты. Если это не удается, он откатывает изменения и продолжает работать со старой конфигурацией. Если это удается, он запускает новые рабочие процессы и отправляет сообщения старым рабочим процессам с просьбой корректно завершить работу. Старые рабочие процессы закрывают прослушиваемые сокеты и продолжают обслуживать старых клиентов. После того, как все клиенты будут обслужены, старые рабочие процессы завершаются.
Один старый рабочий процесс сохраняется для обслуживания соединений. Старый рабочий процесс останавливается, если могут быть запущены новые рабочие процессы. В противном случае nginx снова запускает старые рабочие процессы.
Подробный пример процесса также имеется в документах.
Надеюсь это поможет!