連載
» 2016年05月02日 05時00分 UPDATE

とにかく速いWordPress(8):「WordPress“1000倍”高速化」チューニング 第四弾──Webサーバを「Nginx」に切り替える (1/2)

エンタープライズ用途での利用が増えている「WordPress」の高速化チューニングテクニックを解説する本連載。今回は、「1000倍高速化」を目指すチューニングテクニックの第四弾「WebサーバをNginxに切り替えて高速化する」方法を紹介します。

[中村けん牛,プライム・ストラテジー]

連載バックナンバー

 前回は、PHP互換の実行環境である「HHVM(HipHop Virtual Machine)」を導入して、チューニングをしない初期状態から「約16.9倍」までWordPressを高速化できました。

 今回は、WebサーバをApacheから高速・軽量で定評のあるWebサーバである「Nginx」に切り替えて高速化するチューニングテクニックを解説します。

photo WordPressの日本語ローカルサイト

 まず、本テクニックはこれまで解説してきたチューニングの続きとなるので、この記事からご覧の方は、連載バックナンバーから、「約16.9倍」まで高速化チューニングを済ませておいてください。

チューニング内容 ページのロード時間
(デフォルト環境比)
1秒当たりの同時アクセス数
「Requests per second」(デフォルト環境比)
デフォルト環境 176ms 11.24
APCの導入
 チューニング方法をおさらい
70ms(約251%) 29.20
OPcache+APCuを導入
 チューニング方法をおさらい
66ms(約266%) 30.51
MariaDBの設定を調整
 チューニング方法をおさらい
64ms(約275%) 31.82
翻訳アクセラレータを導入(キャッシュ)
 チューニング方法をおさらい
53ms(約332%) 39.29
翻訳アクセラレータを導入(翻訳を停止)
 チューニング方法をおさらい
36ms(約488%) 56.78
gzip圧縮を用いる
 チューニング方法をおさらい
35ms(約502%)
Tunedの調整
 チューニング方法をおさらい
34ms(約517%) 58.47
event MPM+php-fpm構成に変更
 チューニング方法をおさらい
33ms(約537%) 60.79
PHP 5.6+OPCache+APCuを導入
 チューニング方法をおさらい
32ms(約550%) 61.84(約550.2%)
PHP 7+OPCache+APCuを導入
 チューニング方法をおさらい
18ms(約977.7%) 148.08(約1250.6%)
HHVMを導入
 チューニング方法をおさらい
16ms(約1100%) 195.05(約1690.8%)

Nginxを導入する

 「Nginx」はロシアで開発された、高速・軽量で定評のあるWebサーバです。近年、大規模サイトを中心に世界中で導入が進んでいます。Nginxはリバースプロキシやロードバランサとして用いることも可能で、リバースプロキシキャッシュやFastCGIキャッシュなどキャッシュ機能が強力なことも特徴です。ここでは、Apacheの代わりに導入します。

photo 「Nginx」の紹介サイト

 まず、Nginxのリポジトリを導入します。以下の内容を「/etc/yum.repos.d/nginx.repo」として保存してください。ここでは最新バージョンをインストールするため、リポジトリはメインラインを指定しています。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
リスト:「/etc/yum.repos.d/nginx.repo」の内容

 Nginxをインストールして、バージョンを確認します。

[root@ip ~]# yum install nginx -y

 2016年4月時点のNginxの最新バージョンは1.9.13です。次のコマンドでNginxのバージョンを確認します。

[root@ip ~]# nginx -V
nginx version: nginx/1.9.13
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
(略)

 WebサーバをApacheからNginxに切り替えます。

[root@ip ~]# systemctl disable httpd
[root@ip ~]# systemctl stop httpd
[root@ip ~]# systemctl enable nginx
[root@ip ~]# systemctl start nginx

 ブラウザでトップページをリロードしてください。Nginxのウエルカムスクリーンが表示されたら正しく動作しています。

photo Nginxのウエルカムスクリーン

 続いて、WordPressを動作させられるように設定を行っていきます。設定ファイル「/etc/nginx/nginx.conf」を以下のように修正します。

(略)
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  3;
    gzip  on;
    server_names_hash_bucket_size 128;
    include /etc/nginx/conf.d/*.conf;
}
リスト:「/etc/nginx/nginx.conf」の修正箇所(11行目、12行目、13行目)

 ここでは、11行目で「キープアライブの秒数の調整」、12行目で「gizp圧縮の有効化」を行い、バーチャルホストで設定するホスト名が長い場合でも問題がないように、13行目で「server_names_hash_bucket_size」の値を大きめに確保してあります。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。