Влияние Apache изящных перезапусков и пользовательского опыта

10

Безопасно ли gracefulперезапускать Apache на рабочем сервере? Какие последствия вызовет изящный перезапуск и каков будет эффект (если есть)? Будут ли какие-либо вредные воздействия (например, простои, даже если это будет на короткое время)?

Я рассмотрел следующие ресурсы, но до сих пор неясно, каким будет влияние на пользователей:

stellarchariot
источник

Ответы:

9

При выполнении аккуратного перезапуска существующие соединения должны работать до нормального завершения, после чего их работники будут прерваны. Новые рабочие уже должны быть запущены для обработки новых связей.

Вы не должны замечать каких-либо сбоев соединения или медленной загрузки страниц, но на практике вы можете ненадолго увидеть очередь новых соединений, пока конфигурация повторно загружается главным потоком (мой процесс занимает менее полсекунды)

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

Если сервер находится в ненормальном состоянии, он может не перезагрузиться изящно (возможно, именно поэтому вы рассматриваете постепенный перезапуск)

запутанный
источник
1

Если Apache обслуживает статические файлы и не выступает в роли переднего , это довольно гладко. Большинство пользователей даже не заметят, а те, кто это сделает, сочтут это нормальным глюком. Apache не будет обслуживать новые запросы до тех пор, пока не будут обработаны старые, поэтому вы будете ждать, пока они все не завершатся. Если кто-то загружает файл размером 500 МБ со скоростью 68 КБ / с, возможно, вы ожидаете ДОЛГОЕ ВРЕМЯ, в течение которого никакая другая порция не происходит.

Если Apache выходит на сервер приложений, ситуация может быть совсем другой. Исходя из опыта, UX для взаимодействия с этим сервером будет очень плохим до тех пор, пока сервер приложений не будет загружен, не загружены и кеши не прогреются.

sysadmin1138
источник
5
Кроме того, ОЧЕНЬ важно сделать /etc/init.d/httpd configtestперед продолжением любого перезапуска apache на рабочем сервере.
Ситилайт
Действительно - очень важно запустить configtest. IIRC, я думаю, что в более поздних версиях Apache может выполнить неявное тестирование конфигурации перед постепенным перезапуском, и если он не пройдет тестирование, он не продолжит перезапуск.
stellarchariot
5
«Apache не будет обслуживать новые запросы до тех пор, пока не будут обработаны старые, поэтому вы будете ждать, пока они все не закончат. Если кто-то загружает файл размером 500 МБ со скоростью 68 КБ / с, возможно, вы ожидаете ДОЛГОЕ ВРЕМЯ, в течение которого другие служение происходит ". Это не точно. Конфигурация немедленно перезагружается, и создаются новые дочерние процессы, они принимают соединения и обрабатывают запросы, в то время как предыдущее поколение заканчивает свои последние запросы.
Ковенер
0

Вышеупомянутый грациозный параметр указывает httpd начать процесс перезапуска, сначала подав сигнал всем дочерним процессам, чтобы они выполнили свои текущие задачи. После того, как все дочерние процессы (те, которые обслуживают запросы http) завершат свои задачи, они закроются; если какие-либо дочерние процессы в настоящее время не обслуживают запросы, они немедленно закрываются.

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

Ссылка: https://www.godaddy.com/garage/tech/config/how-to-restart-apache-without-rebooting-your-centos-linux-server/ Ссылка

Сомдип Дей
источник