Nginxを使ったらWordPressが爆速になった!

WordPress を高速化する方法を模索中。

今回試した事

  1. MySQL チューニング
  2. Nginx でキャッシュを有効化
  3. Nginx で gzip を有効化

実験した環境

OS FreeBSD 8.3-RELEASE-p3 amd64
resouce 2.4GHz 3vcore, 2GB Mem
Nginx 1.2.6
Apache 2.2.23
PHP 5.4.10
MySQL 5.5.29
WordPres 3.5.1
Themes Twenty Twelve

WordPress はインストールしたての状態で何も変更はなし。
Nginx はリバースプロキシとして動作。

計測方法は index.php 応答速度を firebug で計測。(10回平均)

結果は下記。

1. MySQL チューニング

WordPress高速化実験1

平均応答時間: 323.2ms

チューニング前の結果を間違って消してしまった。

とりあえず、頑張った甲斐があって 20ms くらいは早くなったんじゃないかという感じ。

元から多少は弄ってたのもあるけど効いたパラメータはこれかな ? -> innodb_buffer_pool_size

2. Nginx でキャッシュを有効化

WordPress高速化実験2

平均応答時間: 47.7ms

※ 1の結果より 6.8 倍ほど高速化

キャッシュ使うとやっぱり早い!

キャッシュが効いている間は DB を見にいかないので当たり前か。

設定はこんな感じ。

ちょっと適当ですけど実験用ということで。

http {
    .
    .
    .

    proxy_connect_timeout  60;
    proxy_send_timeout     60;
    proxy_read_timeout     60;
    proxy_cache_path /home/nginx/cache levels=1:2 keys_zone=cache:128m inactive=3d max_size=1024m;
    proxy_temp_path /home/nginx/temp;

    .
    .
    .
}

server {

    listen       80;
    server_name  domain.jp;

    location / {

        proxy_redirect off;
        set $do_not_cache 0;

        if ($request_method != GET) {
            set $do_not_cache 1;
        }

        proxy_no_cache $do_not_cache;
        proxy_cache_bypass $do_not_cache;
        proxy_cache cache;
        proxy_cache_key $scheme$host$uri$is_args$args;

        proxy_pass http://domain.jp:8080;

        proxy_cache_valid 200 5m;
        proxy_cache_valid any 5m;

    }

3. Nginx で gzip を有効化

WordPress高速化実験3

平均応答時間: 29.6ms

※ 1の結果より 10.9倍、2の結果より 1.6倍 ほど高速化

キャッシュを使いつつ gzip も有効にして測定。

結果、爆速になった!最小値で 15ms!

圧縮処理がどの程度負荷に影響してくるかにもよるけど、プラグインとか MySQL を弄るのが馬鹿らしくなるレベル。

設定は下記ブログを参考にそのまま入れてみた。

http://www.mk-mode.com/octopress/2013/01/18/nginx-gzip-compress/

http {
    .
    .
    .

    gzip              on;
    gzip_http_version 1.0;
    gzip_types        text/plain
                      text/xml
                      text/css
                      application/xml
                      application/xhtml+xml
                      application/rss+xml
                      application/atom_xml
                      application/javascript
                      application/x-javascript
                      application/x-httpd-php;
    gzip_disable      "MSIE [1-6]\.";
    gzip_disable      "Mozilla/4";
    gzip_comp_level   1;
    gzip_buffers      4 8k;
    gzip_min_length   1100;

    .
    .
    .
}

Nginx はキャッシュのみなので簡単に負荷分散できるし gzip を使えば転送量も削減、応答も早くなってとお得かも。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>