nginx に Webサーバーを変えてみた(正確にはサーバーを変えてみた)

4月 15, 2011 · Posted in MJ::Blog, Wordpress · 74 Comments 

twitter でツイートした nginx 1.0リリース。熱が冷めぬうちに自分のブログを移設してみた。
nginxは HTTPサーバー(だけじゃないけど)ですね。広く利用されている Apacheと比較して軽い・早いと評判を聞き、最近オープンしているサービスも nginx 使っているのもあるので使ってみたかったのでした。インストール好きとしては。

なんで nginx かというと、単に使ってみたいというのが大きな理由なんだけど
今度リリースする予定のサービスが高負荷になるかもしれなくて、クラウドなどは利用するとして Apache というここまでほぼ一択で来ていた Webサーバーの選択について見直してみようかという思いもあったからです。
Apache 自体そんなにあれこれチューニングできるレベルには達してないけど、簡単な設定ならスイスイ設定できるくらい慣れ親しんでいる。ちょっとくらいのトラブルであればなんとか復旧もできる。
しかし、より高いパフォーマンス・安定しているという話を聞き、何時までも枯れたWebサーバーに甘んじるのではなく、個人的にもスキルが停滞しているし、ここはひとつ重い腰を動かすことにした。

で、さくらVPSに ubuntu いれたサーバーがあったのでそこに突っ込んだ。
というわけでメモ残し。

nginx インストール

$ sudo su -
# nginx=stable
# add-apt-repository ppa:nginx/$nginx
# aptitude update
# aptitude install nginx

majima.net 用バーチャルホストの設定

/etc/nginx/site-available/www.majima.net を作成


server {
  listen  80;
  server_name www.majima.net;

  access_log  /var/log/nginx/majima.net-access.log combined;

  location / {
    root /var/www/majima.net;
    index index.php index.html index.htm;

    # static files
    if (-f $request_filename) {
      expires 30d;
      break;
    }

    # request to index.php
    if (!-e $request_filename) {
      rewrite ^(.+)$ /index.php?q=$1 last;
    }
  }

  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME /var/www/majima.net$fastcgi_script_name;
  }
}

で、設定を有効にするために

ln -s /etc/nginx/site-available/www.majima.net /etc/nginx/site-enable/
/etc/init.d/nginx configtest
/etc/init.d/nginx reload

結構簡単だったな。

WordPressを100倍速くする! MySQLの調整やnginx proxy cache | KRAY Inc
を参考に、proxy cache も組み込んでみたけど大きく早くなったような気もしないので、うまくいっていないかもしれんので、詳しくは上記を見てください。