StackPath
StackPathのCDNは、コンテンツ保護やアセット最適化など、高度なカスタマイズを行うことができます。
WordPressの場合、StackPathでは「Full Site Integration(サイト全体の統合)」と「Static Assets Integration(静的アセットの統合)」という2つの構成から選べます。「Full Site Integration」はサイト全体を同じドメインでキャッシュし、「Static Assets Integration」はサブドメインを使用して静的コンテンツのみをキャッシュします。いずれも弊社Cloudflare統合と互換性があります。
「Static Assets Integration」を使用するには、サブドメインが必要ですが、MyKinstaではドメインを追加するときに、ワイルドカードサブドメイン(*.example.com)が自動的に追加されるので、ご自身でサブドメインをサイトのドメイン一覧に追加する必要はありません。また、CDN Enablerなどのプラグインを使用して、アセットのURLをStackPathのエッジアドレスからお客様のサブドメインに書き換える必要があります。これについては、「『Static Assets Integration』を選択した場合」セクションをご覧ください。
「Static Assets Integration」でサブドメインが必要なことを除いて、弊社Cloudflare統合との互換性を確保するための設定は、いずれの方法でも同じになります。「Static Assets Integration」の場合は、静的アセットのURLを変更するプラグインも必要になりますが、これについても「『Static Assets Integration』を選択した場合」セクションで詳しくご紹介します。
StackPath CDNの利用を開始する
StackPathのアカウントをまだお持ちでない方は、アカウント登録を行ってください。StackPathのアカウントにログインし、「Sites」セクションの「Create Site」をクリックします。
「Select an Integration」の画面で、統合タイプ(「Full Site」または「Static Assets」)を選択します。
「Full Site Integration」を選択した場合
1. オリジンの設定
「Full Site Integration」を選択したら、ドメイン名を入力し、サイトで使用したいサービスを選択して、「Set Up Your Origin」をクリックします。
2. オリジンアドレスの確認
「Set Up Your Origin」ページで、StackPathで自動的に入力されたIPアドレスが、MyKinsta上のサイトのIPアドレスと一致していることを確認してください。
Kinstaサイトがパスワードで保護されている場合、「Is your origin address password protected?(オリジンアドレスはパスワードで保護されていますか)」で「Yes」を選択します。次に、StackPathがコンテンツにアクセスできるように、認証に使用するユーザー名とパスワードを入力します。
前のステップで配信ドメインを設定したため、このステップで独自ドメインの入力は不要です。
「Confirm Origin Address」をクリックして、次の画面に進みます。
3. SSL方式の確認
SSL方式では、StackPathが提供する無料のSSLを使用することが推奨されます。弊社のCloudflare統合で付与されるCloudflare SSLと干渉することはありません。
また、サードパーティで取得したSSL証明書をお使いの場合は、アップロードすることも可能です。
SSL接続で保護したいドメインを確認したら、「Confirm SSL Method」をクリックします。
4. ドメイン所有権の確認
StackPathのSSL証明書を発行するためには、ドメインの所有権を確認する必要があります。「DNS Challenge」または「HTTP Request」のいずれかを選択できます。ここでは例として、弊社DNSで管理するDNSを使用して、「DNS Challenge」の方法を選択します。
別のDNSプロバイダ(レジストラまたは別のDNSホスト ※ドメインのネームサーバーをどこに紐付けたかにより異なります)を使用している場合は、手順が少し異なる場合があります。
「Name」と「Value」の横にあるコピー(クリップボード)のアイコンをクリックして、DNSレコードに追加するCNAMEの情報をコピーします。
弊社DNSにCNAMEレコードを追加するには、MyKinstaにログインし、左サイドバーから「DNS」を選択してください。
- DNSレコードを追加したいドメインをクリックします。
- 「DNSレコードを追加する」を押します。
- 「CNAME」タブをクリックし、StackPathの「Verify Domain Ownership」ページからコピーした内容を「ホスト名」と「指定先」に貼り付けます。その後「DNSレコードを追加する」をクリックし、CNAMEレコードを保存します。
注)DNSレコードのTTL設定により、DNSレコードが伝播するまでに数分から数時間かかる場合があります。
5. 確認の完了
StackPathに戻り、「I have completed one of above validation steps to verify I own the domain.(上記の検証ステップのいずれかを完了し、私がドメインを所有していることを確認しました)」の隣のボックスにチェックを入れ、「Verify Domain Ownership(ドメイン所有権の確認)」をクリックします。
6. DNSの紐付け
DNS伝播が完了すると、ドメインの所有権が確認され、StackPathにDNSを紐付けるための情報が表示されます。コピー(クリップボード)アイコンをクリックし、表示されたIPアドレスをコピーしてください。
7. DNSの更新
この手順は、お使いのDNSプロバイダによって異なる可能性があります。以下は、弊社DNSでの手順になります。
- (まだの場合)MyKinstaの左サイドバーから「DNS」を選択します。
- DNSレコードを追加したいドメインをクリックします。
- ドメインに既存のAレコードがある場合は、編集(鉛筆)アイコンをクリックして、StackPathで表示される最初のIPアドレスに変更します。そうでない場合は「DNSレコードを追加する」をクリックします。
- サブドメインにAレコードを追加しない限り、「ホスト名」は空欄のままにしてください。
- 「IPv4 アドレス」には、StackPathからコピーしたIPアドレスを使用します。
- 「DNSレコードを変更する」(DNSレコードの更新)または「DNSレコードを追加する」(新しいDNSレコードの追加)をクリックして、DNSレコードを保存します。
注意)DNSレコード伝播まで、最大で1時間かかる場合があります。
8. セットアップの完了
StackPathのダッシュボードに戻り、DNSを更新する手順が完了したことを確認するボックスにチェックを入れ、「Complete Setup」をクリックします。
9. DNSレコードの追加
StackPathのサイトの「Overview」ページが表示されます。www CNAME(www.example.com)に追加または変更が必要な別のDNSレコードを確認することができます。コピー(クリップボード)アイコンをクリックし、値をコピーしてください。
10. CNAMEレコードの追加
次に、弊社DNSでこのDNSレコードを追加または編集します。この手順もまた、お使いのDNSプロバイダによって異なる可能性があります。
- 「www」のホスト名に対してすでにCNAMEレコードがある場合は、編集(鉛筆)アイコンをクリックしてそれを更新します。そうでない場合は「DNSレコードを追加する」をクリックし、「CNAME」タブを選択します。
- ホスト名:www
- 指定先:StackPathで表示される、wwwに紐付けるホスト名
- 「DNSレコードを変更する」(DNSレコードの更新)または「DNSレコードを追加する」(新しいDNSレコードの追加)をクリックして、DNSレコードを保存します。
注意)DNSレコード伝播まで、最大で1時間かかる場合があります。
11. DNS設定の確認
StackPathのダッシュボードに戻り、「Re-Check DNS Settings」をクリックします。
これでサイトとStackPathのCDNサイトの接続が完了です。設定の確認と構成(後述)をして完了です。
「Static Assets Integration」を選択した場合
1. オリジンの設定
「Static Assets Integration」を選択して次のページに進んだら、静的アセットのサブドメインを入力し、「Content Delivery Network (CDN)」にチェックを入れて、「Set Up Your Origin」をクリックします。
2. 設定の完了
「Set Up Your Origin」ページで、「Origin Hostname」フィールドにのサイトのプライマリドメインを入力します。
Kinstaサイトがパスワードで保護されている場合、「Is your origin address password protected?(オリジンアドレスはパスワードで保護されていますか)」で「Yes」を選択します。次に、StackPathがコンテンツにアクセスできるように、認証に使用するユーザー名とパスワードを入力します。
前のステップで設定済みなので、ここで独自ドメインを追加する必要はありません。
「Complete Setup」をクリックすると、次のページに進みます。
3. SSLの設定
StackPathのサイトの「Overview」ページが表示されます。ここから、設定を完了するために必要ないくつかのステップが始まります。まずサブドメインのSSL証明書を設定します。StackPathがサブドメイン上の静的アセットを安全に提供するためには、サブドメインの検証を終え、StackPathに独自SSL証明書を追加する必要があります。「Configure SSL」 の下にある「Click here to configure」をクリックして、作業を開始します。
4. 証明書の作成
EdgeSSLページで、「Create Certificate」ボタンをクリックします。
5. 証明書の生成
StackPathが提供する無料のSSLを使用することが推奨されます。弊社のCloudflare統合で付与されるCloudflare SSLと干渉することはありません。
また、お客様のサイトがサードパーティで購入した別のSSL証明書を使用している場合、そのSSL証明書をアップロードすることもできます。
「Free Dedicated Certificate」下の「Generate」ボタンをクリックすると、証明書の作成が始まります。
6. 認証
対象のサブドメインを選択し、「Continue to Validation」ボタンをクリックします。
7. ドメイン所有権を確認
StackPathのSSL証明書を発行するためには、ドメインの所有権を確認する必要があります。「DNS Challenge」または「HTTP Request」のいずれかが選べます。例として、弊社DNSで管理するDNSを使用して、「DNS Challenge」を選択します。
別のDNSプロバイダ(レジストラまたは別のDNSホスト ※ドメインのネームサーバーをどこに紐付けたかにより異なります)を使用している場合は、手順が少し異なる場合があります。
「DNS Challenge Validation」の横にある「Show Instructions」をクリックし、「Name」と「Value」の横にあるコピー(クリップボード)のアイコンをクリックして、DNSレコードに追加するCNAMEの情報をコピーします。
弊社DNSにCNAMEレコードを追加するには、MyKinstaにログインし、左サイドバーから「DNS」を選択してください。
- DNSレコードを追加したいドメインをクリックします。
- 「DNSレコードを追加する」ボタンを押します。
- 「CNAME」タブをクリックし、StackPathのVerify Domain Ownershipページからコピーした内容を「ホスト名」と「指定先」に貼り付けます。その後「DNSレコードを追加する」ボタンをクリックし、CNAMEレコードを保存します。
注)DNSレコードのTTL設定により、DNSレコードが伝播するまでに数分から数時間かかる場合があります。
8. 設定の確認
StackPathに戻り、「I’ve configured my DNS. Continue」をクリックします。「EdgeSSL」ページで、無料専用証明書が有効になっていることが確認できます。有効になっていない場合は、DNSが伝播し、証明書が有効になるまでにもう少し時間がかかります。
9. サブドメインの紐付け
CDNが静的アセットを配信できるように、サブドメインをStackPathに紐付けます。「Overview」ページに移動し、コピー(クリップボード)アイコンをクリックして、CNAMEの値をコピーします。
10. CNAMEレコードの追加
弊社DNSでDNSレコード追加、編集する手順は以下のとおりです。この手順は、お使いのDNSプロバイダによって異なる場合があります。
- (まだの場合)MyKinstaの左サイドバーから「DNS」を選択します。
- DNSレコードを追加したいドメインをクリックします。
- 「DNSレコードを追加する」ボタンをクリックします。
- 「CNAME」タブをクリックし、「ホスト名」フィールドにサブドメインの最初の部分(例:static)を貼り付けます。
- StackPath からコピーした「Value」を「指定先」フィールドに貼り付けます。
- 「DNSレコードを追加する」ボタンをクリックして、CNAMEレコードを保存します。
注意)DNSレコード伝播まで、最大で1時間かかる場合があります。
11. DNS設定の確認
StackPathに戻り、「Overview」ページで「Re-Check DNS Settings」をクリックします。
必要に応じて、DNSが伝播するまでの間、DNSの設定を再度確認してください。伝播後はサイトを指定するための指示が消え、「Overview」ページにサイトを管理するためのオプションが表示されます。
12. 保存と確認
静的アセットのURLをStackPathのエッジアドレスからご自身のサブドメインに書き換えるには、CDN Enablerを追加して設定する必要があります。CDN EnablerはKeyCDNにより開発されたプラグインで、他のCDNでも利用できます。プラグインをインストールし、有効化したら、プラグインの設定ページに移動して、サイトの静的アセット用のサブドメイン(例:static.example.com)を入力し、「Save Changes and Validate Configuration」をクリックします。
すべてが適切に設定されると、CDNホスト名が有効であることを示すメッセージが表示され、200ステータスが返されます。保存時にエラーが表示された場合は、上記すべての設定、サブドメインの綴り、およびDNSが伝播されていることを再確認してください。
これでサイトとStackPathが接続され、StackPathのCDNから静的アセットが配信されるようになります。次は、設定の調整を行います。
StackPathの設定
ドメインが完全にStackPathに紐付けたら、弊社Cloudflare統合との互換性を保つために設定の調整と確認を行います。
設定
「Sites」>「Settings」
Pull Protocol:リダイレクトのループやエラーを回避するために、「HTTPS Only」に設定します。
CDN
「Sites」>「Settings」
- Query String Control:デフォルトの「Cache all Query Strings」のままにしておくと、正しくないコンテンツの読み込みを防ぐことができます。
- Content Persistence:デフォルトでは無効になっていますが、オリジンサーバーがダウンした際にもコンテンツの可用性を確保したい場合には有効にしてください。
- URL Caching:(特に動的なサイトを運営している場合は)無効のままにしてください。動的なサイトで、特定のセクションをファイル拡張子なしでキャッシュするには、独自のEdgeRuleを作成してください。
その他の構成と設定
- 「Sites」>「EdgeSSL」>「Force HTTPS Connections」:すべての訪問者をHTTPではなくHTTPSにリダイレクトするには、MyKinstaまたはStackPathでHTTPSリダイレクトを設定します。リダイレクトエラーやループが発生する可能性が高いため、どちらかでリダイレクトを設定してください。
- 「Sites」>「EdgeRules」>「Delivery Rule」:特定の状況下では、管理ツールバーやその他のユーザーの要素が誤ってキャッシュされる可能性があります。この潜在的に重大なセキュリティ上のリスクを抑えるためには、Delivery Rule(配信ルール)を作成する必要があります。
- If:Cookieがwordpres_logged_in*にマッチする場合(Cookie Matches wordpres_logged_in*)
- Then:キャッシュをバイパスする(Bypass Cache)
- 「Sites」>「EdgeRules」>「Force www Connections」:複数のドメインやHostヘッダと競合する可能性があるため、無効のままにしておくことをお勧めします。有効にする場合は、wwwサブドメイン(www.example.com)のDNSをStackPathに紐付けてください。
以上がStackPathでの設定です。何か問題が発生した場合には、以下のトラブルシューティング方法をご覧ください。
StackPathの一般的な問題のトラブルシューティング
StackPathのセットアップ後に、サイトが期待通りに動作しないことがあるかもしれません。CDNの層を追加した状態では、それに準じたトラブルシューティングを行う必要があります。以下、一般的な問題とその解決方法をご紹介します。
サイトに変更が反映されない
StackPathを使用すると、キャッシュの層が追加されるため、キャッシュをクリアする際には、このキャッシュも必ずクリアしてください。インストール後または再インストール後に、サイトの変更内容がうまく表示されない場合、またはプラグインが期待通りに動作しない場合は、以下を含むすべてのレイヤーでキャッシュをクリアしてください。
- プラグイン(該当する場合)
- テーマ(該当する場合)
- Kinstaサイト/サーバーキャッシュ(MyKinstaまたはKinsta MUプラグインのいずれかから)
- StackPathのキャッシュ
- ブラウザキャッシュ
誤検出によりIPアドレスがブロックされた
StackPathでWAFandまたはFirewall(ファイアウォール)を有効にすると、サイト管理者や訪問者によるサイトの閲覧が誤ってブロックされることがあります。この場合は、StackPathおよび弊社カスタマーサポートに問題を報告し、ブロックが発生している場所を特定する必要があります。
「EdgeRules」>「Delivery Rules」で独自のルールを設定している場合は、そのルールも確認してください。
HTTPとHTTPSのリダイレクトループ
サイト上でHTTPからHTTPSへのリダイレクトループが生じている場合は、以下の設定を確認してください。
- StackPathで、Pull Protocol(「Sites」>「Overview」>「Settings」)が「HTTPS Only」に設定されていることを確認します。
- MyKinsta (「WordPressサイト」>(サイト名)>「ツール」>「HTTPSリダイレクト」)またはStackPath(「Sites」>「EdgeSSL」>「Force HTTPS Connections」)のいずれかで(両方では行わないでください)、HTTPSリダイレクトが有効になっていることを確認します。
高度な設定と互換性
Host Header
「Sites」>「Settings」>「Host Header」:Hostヘッダは、MyKinstaに追加されているドメインと一致しなければなりません。StackPathで追加した最初のドメインがデフォルトで、オリジンサーバーからコンテンツを取得するのに使用されるのがHostヘッダです。MyKinstaとStackPathの両方で複数のドメインを設定している場合は、これを「Dynamic」に変更してください。
Origin Authentication
「Sites」>「Settings」>「Origin Authentication」を選択します。Kinstaサイトがパスワードで保護されている場合、StackPathがコンテンツにアクセスできるように設定する必要があります。
Lifetime
「Sites」>「CDN」>「Lifetime」:デフォルトでは、オリジンヘッダを尊重することを意味するオリジンコントロールです。弊社のCloudflare統合では、静的ファイルの有効期限は最大に設定されています。必要に応じて、StackPathでこの設定を変更することができます。
Caching By Header
「Sites」>「CDN」>「Caching By Header」:同じURLで、モバイル・PC間で異なるコンテンツ(CSSやJavaScriptで別のレイアウトを表示するわけではなく、完全に異なるコンテンツ)を配信する場合にのみ有効にしてください。また、そのコンテンツ配信用にNginxルールを作成するため、弊社カスタマーサポートへのお問い合わせが必要になることがあります。
Delivery Rules
「Sites」>「EdgeRules」>「Delivery Rules」:WordPressのログインURLを変更している場合は、そのページのキャッシュをバイパスするためにEdgeRulesで特別なルールを作成しなければなりません。以下は、ログインURLが「https://example.com/mylogin」とした例です。
- If:URLがhttps://example.com/mylogin*に一致する場合(URL Matches https://example.com/mylogin*)
- Then:キャッシュをバイパスする(Bypass Cache)
Custom robots.txt file
「Sites」>「EdgeRules」>「Custom robots.txt file」:StackPathでこれを有効にすると、弊社提供のrobots.txtファイルは無視され、StackPathでrobots.txtファイルを管理することになります。弊社でrobots.txtファイルに加えた変更は、StackPath提供のrobots.txtファイルに影響を与えることはなく、検索エンジンによってクロールされることもありません。
Referrer Protection
「Sites」>「EdgeRules」>「Referrer Protection」: この機能はサイトへのすべてのトラフィックがブロックされる可能性があるため、慎重に使用してください。訪問者のリファラ(参照元)がStackPathのリストにあるドメインと一致しない場合、「403 Forbidden」レスポンスが返され、サイトが閲覧できなくなります。