Debian – Apache2 reload vs restart mais pourquoi ?

Bon un petit billet pour expliquer un cas rencontré qui me semble des plus incohérents. Attention sur une ancienne version d’apache2 (la 2.2.16 autant dire une très vieille version).

Le contexte, je suis sur un serveur Debian en train de modifier des virtualhosts apache2, jusqu’ici rien de bien méchant.

Après ma modification (toute petite et n’ayant aucune conséquence sur la suite de l’histoire) je lance un « reload » d’apache2 => tout est ok.

Comme notre bonne pratique le veut (un peu comme chez les électriciens), c’est le dernier qui intervient qui est responsable donc pour éviter au copain de se prendre un restart qui failed à cause de ma modification (et ce potentiellement des mois après) je lance un « restart » d’apache2 et là bam ça failed. Je commente ma modification et je relance un « restart » et au surprise ça failed encore. J’en tire une première conclusion la bonne pratique n’a pas été respecté sur l’intervention précédente, bon cela arrive ce n’est pas le top mais ce n’est pas dramatique, la seconde conclusion que j’en tire et qui me pose beaucoup de souci, c’est là le souci réel c’est que la commande reload autorise des configurations qui ne sont pas bonnes alors que la commande restart elle ne les autorise pas donc à quoi sert d’utiliser une commande qui peu vous entrainer ce genre de soucis des mois après ?

Bon je me creuse la tête et je me dis tiens maintenant que je sais où est l’erreur je désactive le virtualhost concerné, je lance un « restart » => Ok parfait, je vais plus loin je réactive le virtualhost et je lance un « reload » et là devinez quoi bah OK donc la conclusion c’est quand vous avez une configuration qui ne passe pas en restart, commentez là, faites un restart, décommentez là et faites un reload mais oui bien sûr c’est super trivial.

Si certains comprennent ce genre de chose je suis preneur mais personnellement, je trouve ça incohérent surtout quand on sait qu’il y avait bien une erreur dans ma configuration. Donc le reload ne check pas autant que le restart et on ne peut être sûr d’une config qu’après un restart seulement.

Pas top 😉

3 réflexions au sujet de « Debian – Apache2 reload vs restart mais pourquoi ? »

  1. C’est louche parce que dans le process de reload sur /etc/init.d/apache2, c’est censé effectuer un configtest avant de recharger via apachectl graceful.

    C’est quelle version de debian/apache ? le script de apache-2.4 sur jessie à l’air mieux fichu, mais ça fait longtemps que j’ai pas fait de shell… 😛

    1. Merci pour ton commentaire, effectivement je n’étais pas sur la dernière version qui semble plus cohérente sur le point reload vs restart mais sur la version 2.4.10 d’apache2 une mauvaise config en 443 ne pose plus de soucis au restart ou reload (cohérence retrouvée) mais ne me donne pas la page escompté une jolie erreur de redirection qui indique que la page est mal redirigée, donc tout cela mérite d’être creuser un peu, j’essaierai de faire des tests plus approfondis si j’ai le temps mais j’en profite pour indiquer la version d’apache2 dans l’article suite à ton commentaire qui montre des différences entre les versions sur ce point restart vs reload.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.