Як перезавантажити конфігурацію apache для сайту без перезавантаження апаша


141

Я відредагував змінну AllowOverride для одного з моїх веб-сайтів у каталозі з підтримкою сайтів . Як перезавантажити нову конфігурацію без перезапуску apache? Це можливо?



1
Схоже, всі відповіді невірні.
Тигран

Відповіді:


182

повинно бути можливим за допомогою команди

sudo /etc/init.d/apache2 reload

сподівання, що допомагає


11
Я майже впевнений, що це неправильно. Дивлячись на init.d-скрипт сервера Ubuntu, перезавантаження стосується витонченого перезапуску. Це означає, що перезавантаження насправді є перезавантаженням, але витончено. Моя думка, що apache неможливо перезавантажити, не перервавши послугу.
SteffenNielsen

4
Відповідь Арумана правильна. Більшість сценаріїв ініціалів Apache надсилають SIGHUP, що еквівалентно "перезапуску apachectl", чого спеціально просив уникати ОП. Інші сценарії ініціалів Apache надсилають SIGUSR1, що еквівалентно "apachectl graceful", що також є перезавантаженням, але зроблено більш витончено, і це відповідь Арумана.
Брайан Ларсен

@SteffenNielsen Я думаю, ти маєш рацію ... Деякі з них будуть добре використовувати балансир завантаження, відключаючи перезапуск, перезапуск, роботу з версією db, а потім робити те ж саме для іншого сервера / контейнера apache. Деякі з цих питань K8s не вирішує.
Рей Фосс

1
Гаразд, ось що відбувається, основний процес apache2 не змінюється, але діти або працівники (я не знаю правильної термінології) все перезапускаються, ці PID фактично змінюються.
Ілля Лінн

1
І я думаю, що витончена в цьому випадку означає лише те, що ці діти-працівники закінчують виконувати їхні прохання, перш ніж їх вбивають і відновлюють.
Ілля Лінн


28

Зробіть

apachectl -k graceful

Перевірте це посилання для отримання додаткової інформації: http://www.electrictoolbox.com/article/apache/restart-apache/


18
Це перезапустить демона Apache httpd, якого запитання спеціально не потрібно було уникати.
cs01

6
@ cs01 Де ви читаєте, що демон httpd буде перезапущено? Все, що я читаю за посиланням у відповіді, говорить про такі речі, якapachectl graceful: Gracefully restarts the Apache daemon by sending it a SIGUSR1. If the daemon is not running, it is started. This differs from a normal restart in that currently open connections are not aborted.
Тайлер Колліер,

5
Перше речення опублікованої вами документації говорить саме так, чи не так?
cs01

3
@ cs01 Вам потрібно зрозуміти, чому вони турбуються про перезапуск. Це не вказано, але я гадаю, що вони не хочуть, щоб з'єднання перервано, а не перезапуск в собі. Витончений перезапуск допоможе зробити це чудовим у більшості випадків. Якщо існують тривалі зв’язки, це, можливо, проблема. Також вам потрібне гарне визначення перезапуску, оскільки все витончене перезавантаження - це повторне ініціалізація батьківського процесу, тобто pid не змінюється, де звичайний перезапуск руйнує все дерево процесу та породжує нове. Тому відповідь Тайлера Коллера цілком правомірна.
krad

7

Оновлено для Apache 2.4, для несистемних (наприклад, CentOS 6.x, Amazon Linux AMI) та для системних (наприклад, CentOS 7.x):

Існує два способи, щоб процес apache перезавантажував конфігурацію, залежно від того, що ви хочете зробити з поточними потоками, або радить вийти під час роботи в режимі очікування або вбити їх безпосередньо.

Зауважте, що Apache рекомендує використовувати apachectl -k як команду, а для systemd команду замінюють наhttpd -k

apachectl -k graceful або httpd -k graceful

Apache порадить своїм потокам вийти під час роботи в режимі очікування, а потім apache перезавантажить конфігурацію (він не виходить з себе), це означає, що статистику не скидають.

apachectl -k restart або httpd -k restart

Це схоже на зупинку, оскільки процес вбиває свої потоки, але потім процес перезавантажує конфігураційний файл, а не вбиває себе.

Джерело: https://httpd.apache.org/docs/2.4/stopping.html


apache 2.4.39 (win) підтримує не httpd -k gracefulтільки httpd -k restart: httpd /?=>-k restart : tell running Apache to do a graceful restart
Андреас Дітріх
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.