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
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です