Webサーバ

ワードプレスをNginxのFastCGIキャッシュを使って高速化

エックスサーバーでホスティングしているワードプレスを、nginx の FastCGI キャッシュを使って運用したらどうなるのか気になったので調べてみました。

利用しているテーマによっては、デザインが綺麗になる反面サイトが重くなる場合もあります。

エックスサーバーにも高速化のオプション機能(PHPのOPcacheやPageSpeedInsightsなど)がいくつかありますが、nginx のキャッシュ機能は利用ができません。

画像ファイルやスタイルシート(css)の読み込みについてはまた別に高速化のテクニックがありますが、今回はワードプレスのページ生成処理を極力減らす対策を行っていきます。

要は、記事ページを生成する際に最初の 1 回目だけワードプレスに処理させて、その後は一定時間ワードプレスに処理させずに同じ html ファイルを返すという方法です。

エックスサーバーからワードプレスデータの移行

まずはエックスサーバーからワードプレスのデータをバックアップします。

必要な情報は以下の通りです。

テーマ
プラグイン
画像
データベース

ファイルのバックアップ

エックスサーバーの場合は、FTP または SCP でフォルダごとバックアップしましょう。

f:id:chatoracat:20181028155359j:plain

対象のフォルダは以下の 3 つです。

wp-content/plugins
wp-content/themes
wp-content/uploads

データベースのバックアップ

エックスサーバーはデータベースのバックアップが簡単にできます。

200 記事で約 4MB くらいのサイズでしたので、圧縮なしのバックアップダウンロードで問題ありません。

サーバ管理メニューから「MySQLバックアップ」をクリックします。

f:id:chatoracat:20181028155433j:plain

対象のデータベースを選択して「エクスポート実行」ボタンをクリックします。

f:id:chatoracat:20181028155455j:plain

f:id:chatoracat:20181028155521j:plain

nginxのサーバでワードプレスを動かす

今回は AWS の EC2 で nginx のサーバを立ててみます。

初めて利用する方は 1 年間の無料枠があるので、自分でサーバを立てて勉強してみたい方にもおススメです。

今回は以下の記事を参考に、PHP5.6 ではなく PHP7.2 に置き換えて進めたいと思います。

AmazonLinuxでnginxを使ったWebサーバを構築するここまでで EC2 へアクセスするための最低限の設定が完了したので、いよいよ Web サーバを構築していきます。 今回は、無料枠期間を...

nginx のインストールまでは手順が同じなので上記の記事を参考にしてください。

PHP7.2 をインストールします。

PHP の設定ファイルは /etc/php-fpm-7.2.d/www.conf に置き換えて調整してください。

ワードプレスのインストール

ワードプレスは /var/www 配下にダウンロードします。

データベースは AWS の RDS を利用します。詳しくは「AWSでパラメータグループを設定してからRDS(MySQL5.7)のインスタンス作成をする」の記事を参考にしてください。

AWSでパラメータグループを設定してからRDS(MySQL5.7)のインスタンス作成をするRDS のインスタンスを作成する際、いきなりデータベースを構築すると後々パラメータグループを変更する手間が発生します。 それは、デフォル...

以下のファイルでデーターベースの接続情報を調整します。

この状態で、バックアップしたデータをコピーします。

/var/www/wordpress/wp-content/plugins
/var/www/wordpress/wp-content/themes
/var/www/wordpress/wp-content/uploads

ディレクトリの権限を調整しておきます。

最後にバックアップしたデータベースのデータを反映します。

MySQL クライアントの設定は「AmazonLinuxにMySQLクライアントをインストールする」の記事を参考にしてください。

AmazonLinuxにMySQLクライアントをインストールするAWS でデータベースを使う際、MySQL サーバを立てるよりも RDS(MySQL)を使う方が楽です。 ただし、データベースのメンテ...

nginxの設定

nginx の VirtualHost の設定例です。

SSL のサーバ証明書は Let’s Encrypt で取得した前提としています。詳しくは「AmazonLinuxでnginxを使ったWebサーバを構築する」をご覧ください。

AmazonLinuxでnginxを使ったWebサーバを構築するここまでで EC2 へアクセスするための最低限の設定が完了したので、いよいよ Web サーバを構築していきます。 今回は、無料枠期間を...

キャッシュコントロールのプラグイン

nginx のキャッシュはサーバ上で削除できますが、記事投稿時やサイトのデザイン変更時にクリアさせれると便利です。

この手のプラグインがいくつか提供されていますが、今回は「Nginx Helper」を使ってみます。

手動で削除したい場合は「nginxのFastCGIキャッシュを強制的にクリアする」の記事を参考にしてください。

nginxのFastCGIキャッシュを強制的にクリアするリアルタイムに状態が変わるようなサイトでは、部分的にデータをキャッシュすることはあってもページ全体をキャッシュすることはないと思います。...