本ブログは、GCP(Google Cloud Platform)上にWordPressの仮想インスタンス(サーバ)を立てて運営しています。
この連載では、本ブログを0から構築した時の手順を紹介しています。
GCPって何?という方は次の記事を先に読んでくださいね。
今回は、CloudFlareを導入してサイトのアクセス高速化を図ります。
この記事でやること
Webサイトの高速化を図るため、CloudFlareを利用します。
CloudFlareに登録
まずは、こちらからCloudFlareのアカウントを作成します。

サイトのドメインを入力します。

プランはFreeを選択します。

デフォルトで追加してあるCNAMEレコードを「×」で削除します。

OKをクリック。


ネームサーバーの置き換え
CloudFlareのネームサーバーを権威DNSに設定
CloudFlareのネームサーバーを権威DNSとして現在利用しているDNSに設定します。
本サイトはDNSにGoogle Domainsを使用していますが、他のサービスを使用されている方は各サービサーの設定を確認してください。
まず、「Replace with Cloudflare’s nameservers」のNameserver1と2を控えます。

Google Domainsに移動して、「DNS」から「カスタムネームサーバーを使用する」を選択します。

ネームサーバーに先ほどのCloudFlareのネームサーバーを設定します。


これによってサイトのアクセスがCloudFlare経由になります。
CloudFlareのアイコンをクリックするとサイトとの連携状態が表示されます。下の画像のように「Active」になっていれば、CloudFlareがネームサーバとして利用できる状態になっています。

証明書の確認
サイトにhttpsでアクセスして証明書を確認してみます。
アドレスバーの先頭の鍵マークをクリックし、「証明書」をクリックします。

そうすると証明書の情報が確認できます。発行者がCloudFlareになっていればOKです。

http接続でhttpsにリダイレクトされない場合
前回の記事で、Webサーバへのhttp接続を自動的にhttpsにリダイレクトする設定を行いました。
上記の設定を行っていない場合、httpで接続したらそのままアクセスされると思うので、次の手順でCloudFlareで常時SSL通信をオンにしてください。
「SSL/TLS」から「Edge Certificates」タブをクリック。

「Always Use HTTPS」と「Automatic HTTPS Rewrites」をOnにする。


DNSSECの設定
次に、DNSSECの設定を行います。Google Domainsは無料でDNSSECが利用できるので設定しておきます。
(サービスによっては有料なこともあります。)
DNSSECはキャッシュポイズニング攻撃から保護する対策です。
CloudFlareのDNS設定からDNSSECの「Enable DNSSEC」をクリックします。


上記の情報をGoogle Domainsに設定していきます。
Google Domainsの「DNS」からDNSSECの設定に移動し、キータグ:KeyTag、アルゴリズム:Algorithm、ダイジェストタイプ:DigestType、ダイジェスト:Digestをそれぞれ入力してください。

これでDNSSECの設定は終わりです。
キャッシュの設定
続いてキャッシュの設定を行います。キャッシュを取得する設定と合わせて、除外ページの設定と、キャッシュの自動削除の設定を行っていきます。
記事投稿時にキャッシュを削除する
一度投稿した記事を更新した際、キャッシュが取得されている間はその更新が反映されなくなってしまいます。いちいちキャッシュを削除するのも面倒なので、記事の投稿時は自動的にキャッシュを削除するように設定します。
これは、WordPressにCloudFlareのプラグインを導入することで設定可能です。
プラグインを設定するにあたって、CloudFlareのAPIキーが必要になるので、まずはAPIキーを取得します。CloudFlareのページから「My Profile」を表示してください。

「API Tokens」タブから、Global API Keyの「View」を選択します。
パスワードを入力したら、表示されるキーを控えておいてください。

次に、WordPressでCloudFlareのプラグインを導入します。
管理画面にログインし、メニューの「プラグイン」から「新規追加」を選択してください。

「Cloudflare」と検索してプラグインをインストールします。

インストール後の画面で「here」をクリックします。

CloudFlareに登録しているメールアドレスと先ほど控えたAPIキーを入力し、「Save API Credentials」をクリックします。

これでプラグインの導入は完了です。
設定画面に遷移するので、「Automatic Cache Management」をOnにします。
これにより、記事を投稿した際に自動的にキャッシュが削除されます。

なお、「Purge Cache」から手動でキャッシュの削除ができるので、キャッシュを削除するためにCloudFlareにログインする必要がなくなります。
キャッシュルールを設定する
次に、キャッシュを保有する時間とキャッシュを除外するURLを指定するため、CloudFlareのキャッシュルールを作成します。キャッシュルールは、無料プランでは3つまで設定可能です。
CloudFlareにログインし、「Page Rules」タブから、「Create Page Rule」をクリックします。

設定するルールは次の3つです。
ルール3の時間はお好きな時間を設定してください。
ルール1:/wp-admin/ 以下(管理画面のページ)はキャッシュしない
URL:*<ドメイン>/wp-admin/*
Then the setting are:Cache Level > Bypass
Disable Performance

ルール2:preview=true (記事のプレビューページ)はキャッシュしない
URL:*<ドメイン>/*preview=true*
Then the setting are:Cache Level > Bypass
Disable Performance

ルール3:キャッシュの保管期間は8時間(1と2を除く全ページ)
URL:*<ドメイン>/*
Then the setting are:Cache Level > Cache Everything
Edge Cache TTL > 8 hours

上記のルールを追加したら、以下のように設定されているはずです。
ルールは上位から適用されるので、ルール1とルール2は必ずルール3より上位になるように設定してください。
(すべての構築作業が完了するまではOffにしておいた方がいいと思います。問題が発生した時にキャッシュがあると面倒なので)

今回は以上です。
次はストレージとしてGCSの設定を行います。
コメント