Могу ли я «перезагрузить» файл конфигурации Apache2 без проблем?

16

Является

sudo /etc/init.d/apache2 reload

прерывать операции на веб-серверах, размещенных на Apache?

aneuryzm
источник

Ответы:

19

Перезагрузка делает «Изящный перезапуск».

Из документации Apache Остановка и перезапуск :

Сигнал USR1 или изящный заставляет родительский процесс посоветовать детям выйти после их текущего запроса (или немедленно выйти, если они ничего не обслуживают). Родитель перечитывает свои файлы конфигурации и заново открывает файлы журналов. Когда каждый дочерний элемент умирает, родитель заменяет его дочерним элементом конфигурации нового поколения, который немедленно начинает обслуживать новые запросы.

Теоретически, никакие операции не будут прерваны, но будет волна перезапуска серверных процессов с некоторыми (обычно достаточно тривиальными) издержками.

В действительности задействовано больше переменных, например, используете ли вы prefork или worker, количество дочерних элементов, которые вы указали, а в случае worker - максимальное число потоков на каждого дочернего элемента.

harrymc
источник
1
Ok. Точнее, если мой клиент выполняет заказ в интернет-магазине на основе php. Если я перезагрузлю apache без перезапуска, у него будут проблемы? спасибо
aneuryzm
Опять же теоретически , до тех пор, пока заказ клиента обрабатывается одним вызовом php, и до тех пор, пока перезагрузка не является критичной для правильного функционирования серверов «старого поколения», все будет проходить изящно и хорошо. Но это достаточно легко проверить на практике.
Harrymc
Обратите внимание, что сценарии инициализации добавляются упаковщиком. Те, что для redhat / oracle linux apache v2.2 отправляют сигнал -HUP при вызове сервиса httpd reload . Для корректного перезапуска службы должен быть вызван httpd graceful , который вызывает / usr / sbin / apachectl graceful .
Давид Балажич