NagiosのWebインターフェイスをnginxで利用するための設定例
Ubuntu Server 11.10におけるNagiosのWebインターフェイスをnginxで利用するための設定例をメモとして書いておきます。これはapacheの設定例をnginx用に書き換えてみたものです。
PHPをphp-fpm経由で、CGIをfcgiwrap経由で動かしています。
注意点としてはベーシック認証のユーザー情報をPHPとCGIに渡してあげることです(CGIにだけでよいかも)。これを行わないとCGIが認証エラーを出します。
/etc/ngixn/conf.d/nagios.conf
server { # 色々、略 index index.html index.htm index.php; ## CGIの場所 location /cgi-bin/nagios3 { # gzip圧縮のoff gzip off; # cgi-binディレクトリのroot root /usr/lib; # fcgiwrapのソケット fastcgi_pass unix:/var/run/fcgiwrap.socket; # fastcgi関連のパラメータファイルの読み込み include /etc/nginx/fastcgi_params; # スクリプト ファイルの絶対パス名の設定 fastcgi_param SCRIPT_FILENAME /usr/lib$fastcgi_script_name; # 認証されたユーザ名を変数REMOTE_USERに格納してCGIに渡す設定 fastcgi_param REMOTE_USER $remote_user; # ベーシック認証 auth_basic "nagios"; auth_basic_user_file /etc/nagios3/htpasswd.users; } ## CGIの場所 location /nagios3/cgi-bin { # /nagios3/cgi-bin本来の場所の/cgi-bin/nagios3に書き換える rewrite ^/nagios3/cgi-bin/(.*) /cgi-bin/nagios3/$1; } ## スタイルシートの場所 location /nagios3/stylesheets { alias /etc/nagios3/stylesheets; # ベーシック認証 auth_basic "nagios"; auth_basic_user_file /etc/nagios3/htpasswd.users; } ## NagiosのWebインターフェイスのコンテンツの場所 location /nagios3 { alias /usr/share/nagios3/htdocs; # ベーシック認証 auth_basic "nagios"; auth_basic_user_file /etc/nagios3/htpasswd.users; } ## PHP # /nagios3ディレクトリ以下のphpファイルに一致する。 # ファイル名だけ後方参照できるように()で囲む。 location ~ ^/nagios3/(.*\.php)$ { # php-fpmのソケット fastcgi_pass unix:/var/run/php-fpm.sock; # fastcgi関連のパラメータファイルの読み込み include /etc/nginx/fastcgi_params; # スクリプト ファイルの絶対パス名の設定 # URLのパス名とファイルのパス名がファイル名以外が一致しないので、 # ファイル名だけ取り出して置き換える。 fastcgi_param SCRIPT_FILENAME /usr/share/nagios3/htdocs/$1; # 認証されたユーザ名を変数REMOTE_USERに格納してPHPに渡す設定 fastcgi_param REMOTE_USER $remote_user; # ベーシック認証 auth_basic "nagios"; auth_basic_user_file /etc/nagios3/htpasswd.users; } }