CloudflareでWordPress環境CDN設定

Cloudflare

CloudflareでDNS&SSL&CDN設定


設定の流れ

1.Cloud Storageへ直接アクセス用サブドメイン作成
2.Cloud Storageバケット作成
3.WordPressとCloudStorageの連携
4.WP-Statelessの設定
5.Cloudflareキャッシュルール設定

Cloud Storageへ直接アクセス用サブドメイン作成

バケット名にドメインを指定するため、ドメインの所有権の確認とCNAMEレコードでの別名定義設定
※バケットとは?

Google Search Console」でプロパティタイプの追加をします。

「ドメイン」の方にドメイン名を入力して「続行」

「TXTレコード」をコピー

こちらの画面はそのままにして、CloudflareのDNS設定へ

「TXTレコード」を追加

保存したら「Google Search Console」の画面に戻って「確認」を選択

完了したら、続いてサブドメイン設定

バケットへのアクセスを「https://wpgc.ドメイン名」としたい場合CNAMEレコード追加設定

「c.storage.googleapis.com」はこちらの「CNAME レコード」設定

「保存」したら設定完了

Cloud Storageバケット作成

続いてバケットの作成
GCPメニューの「Cloud Storage」選択して、Cloud Storageの画面へ

まず名前を設定
今回はバケットへのアクセスを「https://wpgc.ドメイン名」としたいので
「wpgc.chrono-dev.net」で設定

設定出来たら「続行」

<ロケーションの設定>
・ロケーションタイプ:「Region」
・ロケーション:「us-west1(オレゴン)」

<ストレージクラス設定>
・Standard

設定したら「作成」

作成完了!

続いて、バケットの権限の追加を行います。

<プリシンパルとロールの追加>
・新しいプリシンパル:「allUsers」
・ロール:「Storageオブジェクト閲覧者」

設定したら「保存」

?、失敗?

原因はこれでした。
公開アクセスが禁止された状態になっていて「allUsers」が設定できない状態になっていました。

「公開アクセス防止を削除」して「allUsers」を設定できるようにし、公開を有効にします。

「確認」を選択して「公開アクセス防止」を削除します。

「公開アクセス防止」を削除したら、再度権限を追加して「一般公開アクセスを許可」を選択

ポリシーが期限切れと出たので「更新」

これでバケットの作成は完了!

WordPressとCloudStorageの連携

次にWordPressとCloudStorageが連携できるように設定

まずは「WP-Stateless – Google Cloud Storage」プラグインをインストールして「有効化」する

プラグインの設定開始

Googleアカウントのログイン

ログインすると連携するGCPのプロジェクト、バケットなどを設定できるので、
作成したものを選択

連携の設定完了

WP-Statelessの設定

Mode:「Stateless」
File URL Replacement:「Enable Editor」

「Domain」にバケットアクセス用ドメイン名を設定

これで設定完了

Cloudflareキャッシュルール設定

WordPressの管理画面などは設定切り替え後すぐに反映してほしいので
キャッシュから外す設定を追加

Cloudflareの管理画面から「ルール」の「ページルール」を選択

「ページルールを作成」を選択して作成ページへ

1つ目のルール(ページ)

・「chrono-dev.net/wp-admin」:WordPress管理画面

■設定項目
セキュリティレベル:高
キャッシュレベル:スキップ
アプリを無効にする
パフォーマンスを無効にする

2つ目のルール(ページ)

・「chrono-dev.net/preview=true*」:WordPressプレビューページ

■設定項目
キャッシュレベル:スキップ
パフォーマンスを無効にする

3つ目のルール(ページ)

・「chrono-dev.net/」:すべてのページ

最後はキャッシュしてほしいページを指定

■設定項目
Auto Minify:HTML、CSS、JS
キャッシュレベル:Cache Everything
エッジキャッシュTTL:12時間

最後にこの設定したルールの優先順位を変更

1.「chrono-dev.net/wp-admin」:WordPress管理画面
2.「chrono-dev.net/preview=true」:WordPressプレビューページ
3.「chrono-dev.net/*」:すべてのページ

この順番で設定

そうすることで管理画面およびプレビューページ以外はすべてキャッシュされることになります

これでCloudflareのキャッシュルール設定は完了

タイトルとURLをコピーしました