nginx連載
会社のブログ"インフラエンジニアway - Powered by HEARTBEATS"で"nginx連載"という記事を書いています。
このはてなダイアリーではメモ書きみたいな感じでnginxの設定について書いていますが、会社のブログではまとめた内容を書いていきます。
Cactiをnginxで利用するための設定例
ウェブアプリケーションを何でもnginxで動かしてみようシリーズになっているこの日記ですが、今回はCactiです。
Ubuntu Server 11.10におけるCactiをnginxで利用するための設定例をメモとして書いておきます。これはapacheの設定例をnginx用に書き換えてみたものです。
/etc/ngixn/conf.d/cacti.conf
server { # 色々, 略 index index.html index.htm index.php; ## cacti # コンテンツの場所 location /cacti { alias /usr/share/cacti/site; # ベーシック認証 auth_basic "cacti"; auth_basic_user_file auth/htpasswd.cacti; } # /cactiディレクトリ以下のphpファイルに一致する。 # ファイル名だけ後方参照できるように()で囲む。 location ~ ^/cacti/(.*\.php)$ { # php-fpmのソケット fastcgi_pass unix:/var/run/php-fpm.sock; # fastcgi関連のパラメータファイルの読み込み include /etc/nginx/fastcgi_params; # スクリプト ファイルの絶対パス名の設定 # URLのパス名とファイルのパス名がファイル名以外が一致しないので、 # ファイル名だけ取り出して置き換える。 fastcgi_param SCRIPT_FILENAME /usr/share/cacti/site/$1; # ベーシック認証 auth_basic "cacti"; auth_basic_user_file auth/htpasswd.cacti; } }
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; } }
WordPressをnginxで利用するための設定例
Ubuntu Server 11.10におけるWordPressをnginxで利用するための設定例をメモとして書いておきます。
WordPressはドキュメントルートの下のwpというディレクトリに配置しています。ただし、コンテンツのURLにはhttp://example.jp/topic/のように/wpを見せないようにしています。コメント等は一切許可していません。
スマートフォン向けの画面を生成するためにWPtouchを利用しています。このため、キャッシュ機能には工夫をしています。
/etc/nginx/nginx.conf
http { # 略 # キャッシュのパスの設定 fastcgi_cache_path /var/run/nginx/cache levels=1:2 keys_zone=STATIC:20m max_size=20m inactive=24h; # 略 }
/etc/nginx/conf.d/wordpress.conf
server { # 色々、略 # キャッシュの制御 set $nocache '0'; # WPtouchのために個別のキャッシュするためのキーのプレフィックス if ($http_user_agent ~* '(iPhone|iPod|incognito|webmate|Android|dream|CUPCAKE|blackberry9500|blackberry9530|blackberry9520|blackberry9550|blackberry 9800|webOS|s8000|bada|Googlebot-Mobile)') { set $wptouch_prefix 'wptouch-mobile.'; } if ($cookie_wptouch_switch_toggle = 'normal') { set $wptouch_prefix 'wptouch-normal.'; } # コンテンツのページ(キャッシュする) location / { if (-e $request_filename) { break; } rewrite ^.+$ /index.php last; } # 管理用のページ(キャッシュしない) location /wp/ { if (-e $request_filename) { break; } if (-d $request_filename) { break; } set $nocache '1'; rewrite ^.+$ /wp/index.php last; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { log_not_found off; access_log off; } # PHPのページをphp-fpmに渡す設定 location ~ \.php { fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; include /etc/nginx/fastcgi_params; # 動的ページのキャッシュの設定 fastcgi_cache STATIC; fastcgi_cache_key "$wptouch_prefix$host$request_uri"; fastcgi_cache_valid 200 10m; fastcgi_cache_valid 404 1m; fastcgi_cache_bypass $nocache; fastcgi_no_cache $nocache; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; } location ~ /\. { deny all; log_not_found off; access_log off; } }
Roundcubeをnginxで利用するための設定例
Ubuntu Server 11.10におけるRoundcubeをnginxで利用するための設定例をメモとして書いておきます。これはapacheの設定例をnginx用に書き換えてみたものです。これで運用できています。
/etc/ngixn/conf.d/roundcube.conf
server { # 色々、略 # Roundcubeのfavicon location /favicon.ico { alias /var/lib/roundcube/skins/default/images/favicon.ico; allow all; } # roundcubeのルート location /roundcube { alias /var/lib/roundcube; allow all; } # tiny mce location /roundcube/program/js/tiny_mce/ { alias /usr/share/tinymce/www/; allow all; } # php-fpmへパス location ~ \.php { fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_param SCRIPT_FILENAME /var/lib$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; include /etc/nginx/fastcgi_params; allow all; } # 設定ファイル等へのアクセス防止 location /roundcube/config { deny all; } location /roundcube/temp { deny all; } location /roundcube/logs { deny all; } }
SpamAssassinのルールファイルの自動更新(sa-update)
SpamAssassinのルールファイルの自動更新(sa-update)のリポジトリの提供を試験的に開始しました。詳しくは http://www.emaillab.jp/spamassassin/sa-update/ をご覧ください。
現時点では、日本語のルール+アルファしか提供していません。