こんにちは、FL.OPSの中の人、じゅんちゃんです。
今回は、最近よく聞くようになったNginx(エンジンエックス)です。
NginxはApacheに比べ高速との話を聞きますが実際のところはどうなのでしょうか。
NginxとApacheで同じWordPressのサイトを動作させた場合の処理能力を比較してみたいと思います。
本日の内容
1. NginxでWordPressサイトを作ってみた
2. 同じサイトを、ApacheとNginXで動かしてみた
ちなみに、OSはCentOS6.5です。
1. NginxでWordPressサイトを作ってみた
NginxでWordPressサイトを構築する場合、Apacheに比べ少々敷居が高いように思います。
おそらく以下の理由のためだと思われますので、その辺をメインに構築します。
- yumの標準リポジトリからインストールできない
- デフォルト設定ではWordPressが動かない
なお、Nginxにはリバースプロキシの機能もありますが、今回は利用せず、単純にApacheの置き換えということで構築してみます。
(リバースプロキシ化は別の回で実施します)
Nginxインストール
CentOSの標準リポジトリからNginxがインストールできないため、Nginxのリポジトリを追加します。
$ vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
インストール
$ yum install nginx
次はMysqlインストール
こちらについてはApacheの場合と同様にyumでインストールします。
$ yum install mysql mysql-server
次はPHPインストール
Nginxの場合、PHPを処理させるためにCGI「php-fpm」が必要になります。
$ yum install php php-pdo php-xml php-pear php-xmlrpc php-common php-cli php-gd php-mysql php-devel php-mbstring php-fpm
Nginx設定
CGIが動く最低限の設定を行います。
(ドキュメントルートは/var/www/wp/htmlへ変更)
$ vi /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
root /var/www/wp/html;
index index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
php-fpm設定
以下のuserとgroupをapacheからnginxへ変更
$ vi /etc/php-fpm.d/www.conf
;user = apache
user = nginx
;group = apache
group = nginx
mysql設定
WordPress用データベースの作成
(ApacheにWordPressをインストールする場合と同じ手順のため省略)
WordPressダウンロードとwp-config.phpの作成
(ApacheにWordPressをインストールする場合と同じ手順のため省略)
サービス起動
/etc/init.d/nginx start
/etc/init.d/php-fpm start
/etc/init.d/mysqld start
ブラウザでアクセスし、以下のWPインストール画面が表示されていればOK。
2. 同じサイトを、ApacheとNginXで動かしてみた
1. で構築したサイトをApacheでも動くようにし、GTMetrixというサイトでパフォーマンス計測してみました。
Nginx
Apache
と、Nginxが若干数値が上回るも、予想に反してほぼ同じ結果に!!
Nginxの特長であるリバースプロキシやキャッシュの設定がされていない場合、NginxもApacheも応答速度では大きな差はないかもしれません。
次回は、リバースプロキシ化やキャッシュ化を行って、この値がどれだけ変わるか確認したいと思います。
GTMetrix
http://gtmetrix.com/