「WordPress プロフェッショナル養成読本」という本を、@naokomcさん、@428designさん、@masatoshisomeyaさんとかと一緒に書きました。
と言っても、例のごとく出版社の人とは一度も会ったこと無いんですけどね。
もっぱら、やりとりはメールか Facebook だけ。現行の入稿も技評さんの GitLab サーバへの push で送るというリモートワークっぷり。
まったく良い時代になったもんです。
WordCamp Tokyo 2014 の会場内で先行販売されるようですので、そちらに行く予定のある人はぜひー
さて、僕が書いたのは第6章「WordPress ユーザのための Nginx 入門」って所です。
仕事でよく使う Nginx をネタにしてインストールから設定まで、はじめて Nginx 触る人でもなんとか WordPress を動かせるようにするところまではサポートしてるはずです。
(若干、駆け足気味ですが…)
以下、僕の章の目次
- Nginx とは? – Nginx のサーバ構成や特徴
- Nginx で WordPress を利用するには – インストールと設定
- Nginx の設定(基本編) – WordPress の運用に役立つ
- Nginx の設定(応用編) – リバースプロキシ、ロードバランサ
最初の章だけ引用しておきますね。
Nginx とは?
Nginx OverView
Nginx(エンジンエックス)とは、軽量で高性能なオープンソースのWebサーバです。
HTML、CSS、JavaScriptや画像ファイルなどの静的ファイルを高速で配信でき、ロードバランサやリバースプロキシなどの機能を備えています。
WordPressが動作するように構成した一般的なサーバをApache、Nginxそれぞれで構成した場合、図1のようになるでしょう。
Nginxでは、ApacheのようにPHPをモジュールとして組み込むことはできません。ちょうどApacheでPHPをCGI版として動作させる状況と似ています。
Nginxにはモジュール版PHPは提供されていないため、ApacheのCGI版PHPと同様にWebサーバとは別のプロセス(php-fpm)でPHPを起動させておき、Nginxとの通信はTCPソケットや、UNIXドメインソケットを用いる必要があります。
バージョン
日本でも注目されてきているNginxですが、それほど若いプロジェクトではありません。
このプロジェクトは2002年に Igor Sysoev(現Nginx.inc CTO)によって開始されました。
現在は安定(stable)バージョンの1.6.x系とメインライン(mainline)バージョンの1.7.x系の2つの
バージョンでリリースされています。
stableバージョンは主にバグフィックスやセキュリティフィックスのみを行い、積極的に新機能が追加されることはありません。
一方、mainlineバージョンでは新機能の追加が積極的に行われますが、それに伴うバグの発生などのリスクもあります。
mainlineバージョンで検証され問題ないと判断された機能のみが、のちほどstableバージョンに投入される形になっています。
実験的なサイトでない限りはstableバージョンを選択することが懸命でしょう。
シェア
最近のW3Techsの調査によれば、トップ100万サイトのうちの実に23.8%がNginxを採用しているようです。
読者には馴染み深いWordPress.comやWordPress.orgといったサイトでも初期の頃からバックエンドに使用されていました。
最初のNginxのspdy対応パッチは、WordPress.comを運営するAutomattic社によって寄贈されています。
特徴
NginxはApacheのようにリクエストの処理をスレッドで行わず、非同期のアーキテクチャを用いるイベントループモデルを採用しています。
このモデルの利点は、多数のリクエストが来た場合に実行スタックをコピーする必要があるスレッドモデルのサーバと違って、1プロセスで複数のリクエストを処理できるところにあります。
そのため、CPU負荷が少なく、メモリ消費量も極端に少なくて済むという利点があります。
また、もう1つの特徴として設定ファイルが読みやすいということも挙げられます。Apacheなど、ほかのWebサーバの設定ファイルと見比べてみればわかるのですが、if文が使えたり変数が使えたりとプログラマにとって非常にわかりやすくなっています。