nginx,fastcgiをmonitで落ちないサーバにする
nginxはhttpサーバ本体でありCGIを動かすのはすべてfastcgiです。fastcgiのエンジンをデーモンで構えているとそれぞれのfastcgiサーバが落ちた時にwebサーバが生きていてもサービス提供不能となります。死活問題です。そのためにmonitで落ちないfastcgiサーバを構築します。環境はdebian5です。debian6でも大して変わらないはずです。
nginx x fastcgiサーバの構築方法は下記を参照ください。
http://d.hatena.ne.jp/Kmusiclife/20111107/1320678141
http://d.hatena.ne.jp/Kmusiclife/20111105/1320467309
1.monitインストール
# apt-get update # apt-get upgrade # apt-get install monit
2./etc/monit/monitrc, /etc/default/monitの編集
/etc/monit/monitrc excerpt(最低限の一行):
include /etc/monit/conf.d/*
/etc/default/monitの内容 startup=0からstartup=1にします
/etc/default/monit excerpt:
startup=1
3./etc/monit/conf.d の中に設定ファイルを作成
/etc/monit/conf.dが存在しない場合は作成してください。
# mkdir /etc/monit/conf.d
設定ファイル monitのnginx.confの作成:
# vim /etc/monit/conf.d/nginx.conf
/etc/monit/conf.d/nginx.conf excerpt:
check process nginx with pidfile /var/run/nginx.pid start program = "/etc/init.d/nginx start" stop program = "/etc/init.d/nginx stop"
設定ファイルmonitのphp5-cgi.confの作成:
# vim /etc/monit/conf.d/php5-cgi.conf
/etc/monit/conf.d/php5-cgi.conf excerpt:
check process php5-cgi with pidfile /var/run/php5-cgi.pid start program = "/etc/init.d/php-fastcgi start" stop program = "/etc/init.d/php-fastcgi stop
設定ファイルmonitのfcgiwrap.confの作成:
debian6などでfcgiwrapを利用している場合はfcgiwrapで設定
# vim /etc/monit/conf.d/fcgiwrap.conf
/etc/monit/conf.d/fcgiwrap.conf excerpt:
check process fcgiwrap with pidfile /var/run/fcgiwrap.pids start program = "/etc/init.d/fcgiwrap start" stop program = "/etc/init.d/fcgiwrap stop"
設定ファイルmonitのfastcgi-wrapper.confの作成:
debian5などでfastcgi-wrapperを利用している場合はfastcgi-wrapperで設定
# vim /etc/monit/conf.d/fastcgi-wrapper.conf
/etc/monit/conf.d/fastcgi-wrapper.conf excerpt:
check process fcgiwrap with pidfile /var/run/fastcgi-wrapper.pid start program = "/etc/init.d/fastcgi-wrapper start" stop program = "/etc/init.d/fastcgi-wrapper stop"
設定ファイルmonitのmysqld.confの作成:
mysqlもついでに
# vim /etc/monit/conf.d/mysqld.conf
/etc/monit/conf.d/mysqld.conf excerpt:
check process mysqld with pidfile /var/run/mysqld/mysqld.pid start program = "/etc/init.d/mysql start" stop program = "/etc/init.d/mysql stop"
最後にmonitを起動します
# /etc/init.d/monit start