WordPressでブログをAWS CloudFrontで配信する時のビヘイビア設定
2023/11/11 (土) - 00:00 PHP&CMSServer
AWSでEC2とCloudFront経由で非常にシンプルなWordPressのサイトを構築したときのはなし。検索ページや記事へのコメントフォームを実装したり、アクセスのたびに関連記事やお勧め記事をランダムに表示させる実装をしたのであまりキャッシュがしつこいと効果が薄れてしまう…その時に設定したかなりザックリとしたCloudFrontのキャッシュ設定の備忘録。
今回CloudFrontを1から導入する場合の手順や、ドメイン設定、SSL証明書設定などは割愛しています。
AWSのコンソールからCloudFrontにアクセスし、[ディストリビューション]→[対象のディストリビューション]にアクセス。[ビヘイビア]のタブを押して移動し、[ビヘイビアを作成]を押下します。
フロントのキャッシュ設定
- パスパターン:/WordPressのディレクトリ/*
- オリジンとオリジングループ:WordPressのあるEC2を選択
- オブジェクトを自動的に圧縮:Yes
- ビューワープロトコルポリシー:Redirect HTTP to HTTPS
- ビュワーのアクセスを制限する: No
- 許可された HTTP メソッド:GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE(検索やコメント、フォームプラグインなどを使う場合)
- キャッシュキーとオリジンリクエスト:Legacy cache settings
- ヘッダー:すべて
- クエリ文字列:すべて(プラグインやアクセス解析などを使う場合)
- cookie:すべて(プラグインやアクセス解析などを使う場合)
- オブジェクトキャッシュ:Customize
- 最小 TTL:300
- 最大 TTL:300
- デフォルト TTL:300
と設定し保存しデプロイが終わるまでしばし待ちます。
コンタクトフォームやWordPressの管理画面用のキャッシュ設定
コンタクトフォームや管理画面や動的なのでキャッシュさせてしまうと厄介です。キャッシュさせないようTTLを0にします。
- パスパターン:/WordPressのディレクトリ/wp-admin/* & /WordPressのディレクトリ/wp-login.php & /WordPressのディレクトリ/フォームのパーマリンク/*
- オリジンとオリジングループ:WordPressのあるEC2を選択
- オブジェクトを自動的に圧縮:Yes
- ビューワープロトコルポリシー:Redirect HTTP to HTTPS
- ビュワーのアクセスを制限する: No
- 許可された HTTP メソッド:GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
- キャッシュキーとオリジンリクエスト:Legacy cache settings
- ヘッダー:すべて
- クエリ文字列:すべて
- cookie:すべて
- オブジェクトキャッシュ:Customize
- 最小 TTL:0
- 最大 TTL:0
- デフォルト TTL:0
と設定し保存しデプロイが終わるまでしばし待ちます。
WordPressの設定
EC2からCloudFrontに変えてしまうと、EC2にあるWordPressに直接アクセスできなくなります。そこでWordPressのURL設定を変更します。WordPressのデータベースでURLを変えてもいいのですが、最も楽なのはwp-config.phpで直接設定値を変更することです。
$ cd /WordPressのディレクトリ/
$ vi wp-config.php
wp-config.phpを開き
define('WP_HOME','https://クラウドフロントのドメイン/WordPressのディレクトリ');
define('WP_SITEURL','https://クラウドフロントのドメイン/WordPressのディレクトリ');
WP_HOME
とWP_SITEURL
の設定値と編集し保存します。ブラウザでWordPressにアクセスし正常に表示され、遷移できること確認します。その上で管理画面にアクセスし問題なくログインができ、正常に操作ができることも確認ください。
おしまい♥
おすすめ記事
- お名前.com ウェブドメインにAWS CloudFront&メールサーバにさくらのレンタルサーバを指定する
- PHPでDeepSeek APIを使ってみた。
- macOSでFTPソフトから踏み台経由でサーバーに接続する
- Next.jsのApp Routerでクエリパラメータ(GETパラメータ)と動的パスを取得
- さくらのレンタルサーバーのPHPとSQLiteを使ってみた
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/wordpress_cloudfront/trackback/