Puis-je «recharger» le fichier de configuration Apache2 sans problème?

16

Est

sudo /etc/init.d/apache2 reload

interrompre les opérations sur les serveurs web hébergés par apache?

anévrisme
la source

Réponses:

19

Reload effectue un "redémarrage gracieux".

À partir de la documentation Apache Arrêt et redémarrage :

Le signal USR1 ou gracieux amène le processus parent à conseiller aux enfants de quitter après leur demande actuelle (ou de quitter immédiatement s'ils ne servent rien). Le parent relit ses fichiers de configuration et rouvre ses fichiers journaux. Au fur et à mesure que chaque enfant décède, le parent le remplace par un enfant de la nouvelle génération de la configuration, qui commence immédiatement à servir de nouvelles demandes.

En théorie, aucune opération ne sera interrompue, mais il y aura une vague de redémarrage des processus serveur, avec une surcharge (normalement assez banale).

En effet, il y a plus de variables impliquées, telles que si vous utilisez préfork ou travailleur, le nombre d'enfants que vous avez spécifié et dans le cas de travailleur le nombre maximal de threads par enfant.

harrymc
la source
1
D'accord. Donc, plus précisément, si mon client effectue une commande sur une boutique en ligne basée sur php. Si je recharge apache sans redémarrer, va-t-il avoir des problèmes? merci
aneuryzm
Encore une fois en théorie , tant que la commande du client est traitée en un seul appel php, et tant que le rechargement n'est pas critique pour le bon fonctionnement des serveurs "ancienne génération", alors tout se passera bien et bien. Mais c'est assez facile à tester en pratique.
harrymc
Notez que les scripts d'initialisation sont ajoutés par le packager. Celles de Redhat / Oracle Linux Apache v2.2 envoient un signal -HUP lors de l'appel du service httpd reload . Pour un service de redémarrage gracieux, il faut appeler httpd gracieux qui appelle / usr / sbin / apachectl gracieux .
David Balažic