Apache 2

Par Pierre-Yves Landuré Dernière modification 07/02/2014 12:33

Accédez aux statuts d'un serveur Apache 2 via une interface Web intégrée dans un espace dédié à l'état en temps réel de votre serveur.

Ce guide est testé sur:

  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy

Prérequis

Ce guide nécessite:

Paramètres

Renseignez le domaine d'accès aux statuts du serveur:

DOMAIN="status.domain.com"

Installation

Activez le module status:

command a2enmod status

Détectez le fichier de configuration du site de statut:

STATUS_VHOST="$(command grep -rl \
    "STATUS PAGES CONFIGURATION END" \
    '/etc/apache2/sites-available')"

Détectez le chemin d'installation utilisé:

if [ -n "${STATUS_VHOST}" ]; then
INSTALL_PATH=$(command grep "DocumentRoot" "${STATUS_VHOST}" \
| command sed -e 's/^[ \t]*//;s/[ \t]*$//' -e 's/[ \t]*[ \t]/ /g' \
| command cut --delimiter=" " --field=2)
fi

Détectez le sous-dossier utilisé:

SUB_FOLDER=""
if [ -n "${STATUS_VHOST}" -a -n "$(command grep '^[ ]*Alias ' "${STATUS_VHOST}")" ]; then
  SUB_FOLDER="$(command grep '^[ ]*Alias ' "${STATUS_VHOST}" \
| command grep "${INSTALL_PATH}" \
      | command sed -e 's/^[ \t]*//;s/[ \t]*$//' -e 's/[ \t]*[ \t]/ /g' \
      | command cut --delimiter=" " --field=2)"
fi

Ajoutez la configuration nécessaire à l'hôte virtuel:

if [ -n "${STATUS_VHOST}" ]; then
command sed -i -e "/STATUS PAGES CONFIGURATION END/i\\
# Apache 2 status page.\\
<Location ${SUB_FOLDER}/apache2>\\
SetHandler server-status\\
</Location>\\
" "${STATUS_VHOST}"
fi

Ajoutez le lien vers les statuts d'Apache 2 à la page d'accueil du domaine:

if [ -e "${INSTALL_PATH}/index.html" ]; then
command sed -i -e '/<\/ul>/i\
<li><a href="./apache2">Apache 2 status</a> (<a href="./apache2?refresh=5">with 5s auto-refresh rate</a>)</li>' \
  "${INSTALL_PATH}/index.html"
fi

Vérifiez que la configuration d'Apache 2 ne contient pas d'erreurs:

command apache2ctl -t

Rechargez la configuration d'Apache 2:

/etc/init.d/apache2 reload

Vous pouvez maintenant accéder aux statuts en temps réel d'Apache 2 sur le domaine dédié aux statuts du serveur. Voici quelques éléments pour interpréter les informations fournies:

  • Une forte utilisation du CPU peut indiquer un problème avec un script exécuté par un module tel que mod_php.
  • Il est normal d'avoir plusieurs tâches en "keep-alive" (indiquées par un "K"). Si, toutefois, elles constituent la majorité des tâches listées, envisagez de réduire la valeur de la directive KeepAliveTimeout.
  • Si vous disposez de peu de tâches inactives (indiquées par un "."), envisagez d'augmentez la valeur "MaxClients". Disposer de tâches inactives pour gérer les nouvelles requêtes peut améliorer les temps de réponse du serveur. Assurez-vous toutefois qu'il y ait suffisament de mémoire disponible pour mettre en place ce réglage.

Remerciements