Monit et Nginx

Depuis que j’utilise nginx en frontal devant apache en tant que reverse proxy, il serait dommage que mon site soit inaccessible en cas d’indisponibilité du service …

Pour surveiller l’état d’un service et le relancer en cas d’indisponibilité, rien de tel que monit. D’ailleurs je l’utilise déjà pour d’autres services critiques tel ssh, Apache, MySQL, memcached et d’autres joyeusetés.

Quelques exemples de configuration pour certains services sont proposés, mais malheureusement il n’y avait rien pour nginx (c’est triste).

J’ai donc ajouté à mon fichier /etc/monit/conf.d/nginx/monitrc :

check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx start"
stop program  = "/etc/init.d/nginx stop"
group www-data
if 5 restarts within 5 cycles then timeout

Vous pouvez évidemment vous inspirer des exemples fournis dans la doc pour affiner la configuration. Ne pas oublier de relancer monit pour prendre en compte les nouvelles directives :

/etc/init.d/monit restart