最終更新日: 2025年9月12日
‘HubSpot上に構築されたウェブサイトは世界各地に広がるCDNを自動的に使用しますが、リバースプロキシーもサポートしています。既存のCDNを利用している場合、または、HubSpotのCDNでは維持できない複雑なルーティングルールがある場合は、HubSpotでホスティングされているコンテンツのリバースプロキシーを設定する方法を確認してください。’;
HubSpotのCMS上に構築されたウェブサイトは自動的に、数百のローカルPOP(ポイント オブ プレゼンス)を持つHubSpotのグローバルなCDN(コンテンツ配信ネットワーク)を使用します。ただし、既存のCDNや、HubSpotの標準CDNでは維持できない複雑なルーティングルールがある場合があります。その場合は、代わりにHubSpotでリバースプロキシーを設定することができます。
リバースプロキシーとは、1つまたは複数のサーバーからリソースを取得し、それらをプロキシーサーバー自体から送信されたかのように見せかけてクライアントに返すプロキシーサーバーの一種です。例えば、HubSpotのCMSでホスティングされていない既存のウェブサイトがwww.website.com
にあり、同時にHubSpotのブログをwww.website.com/blog
でホスティングしているとします。このブログは実際にはHubSpotのサーバーから配信されますが、リバースプロキシーを使用すると、ウェブサイトと同じサーバーからホスティングされているように見えます。
ここからは、HubSpotでリバースプロキシーを設定する方法を詳しく説明します。このガイドを最後まで読み終えると、以下のことが完了できます。
- リバースプロキシーをセットアップするかどうかの判断に当たっての考慮事項を確認する。
- 外部環境でプロキシーを設定する。このガイドには、一般的な手順のほか、Amazon CloudFrontおよびnginx向けの固有の手順が記載されています。
- 設定が正しいことを確認する。また、このプロセス中に
404
エラーが表示された場合のトラブルシューティング手順も、このガイドで説明します。 - HubSpotでコンテンツを作成できるように、ドメインをHubSpotに追加する。
考慮事項
独自のCDNまたはリバースプロキシーを使用すると、利用できる設定オプションが増える可能性がありますが、これにはかなりの運用知識とメンテナンスが必要となります。さらに、サイトのサブパスのプロキシーをHubSpotで行う場合、手動で追加しない限り、メインのsitemap.xml
にはHubSpotのページが含まれません。
リバースプロキシーの設定に進む前に、以下の機能に関する考慮事項のリストをご確認ください。
機能 | HubSpotのCDN | カスタムソリューション |
---|---|---|
帯域幅 | 標準搭載 | 追加費用あり |
SSL | 標準搭載:自動セットアップ | 追加費用あり:手動セットアップ |
グローバルCDN | 標準搭載 | ? |
自動キャッシュ管理 | 標準搭載 | なし |
不正使用防止保護 | 標準搭載 | お客さま側で対応 |
24時間体制の監視 | 標準搭載 | お客さま側で対応 |
サポート | 付属 | お客さま側で対応 |
IPv6 | 標準搭載 | ? |
HTTP/2 | 標準搭載 | ? |
レイテンシー | 最適 | 追加のネットワークホップが必要 |
1. プロキシーを設定する
カスタムリバースプロキシーを追加した場合、ウェブサイトのユーザーがサービスに対してリクエストを送信すると、HubSpotのCDNでプロキシーが行われ、新たなネットワークホップが導入されることになります。プロキシーのセットアップを開始するには、まずAmazon CloudFrontなどのCDN、またはnginxサーバーといった外部環境でプロキシーを設定します。 プロキシーに必要なCNAMEの形式は<HubID>.<suffix>
です。サフィックスの値は、アカウントに割り当てられているデータセンターおよびHub IDの下2桁によって決まります。
以下の表で、適切なサフィックスと、サフィックスに含める適切な数値を確認してください。
データセンターごとのサフィックス
データセンター | サフィックス |
---|---|
米国東部 | sites-proxy.hscoscdn[##].net |
米国西部 | sites-proxy.hscoscdn[##]-na2.net |
カナダ | sites-proxy.hscoscdn[##]-na3.net |
欧州連合 | sites-proxy.hscoscdn[##]-eu1.net |
オーストラリア | sites-proxy.hscoscdn[##]-ap1.net |
HubIDの末尾 | サフィックス |
---|---|
00~10 | 00 |
11~19 | 10 |
20~29 | 20 |
30~39 | 30 |
40~49 | 40 |
50~59 | 00 |
60~69 | 10 |
70~79 | 20 |
80~89 | 30 |
90~99 | 40 |
123456
で、米国東部データセンターにホスティングされている場合、正しいオリジンCNAMEは123456.sites-proxy.hscoscdn00.net
になります。
使用するCNAMEを確認したら、続いてリバースプロキシーの一般的な設定手順と、Amazon CloudFrontおよびnginxに特化したガイドを参照して設定を進めます。
一般的な手順
一般的に、オリジンCNAMEを使用してリクエストを転送するようプロキシーを設定し、以下の設定を追加できます。- HubSpotからのパスに関するキャッシュを実行しないようにプロキシーを設定します。HubSpotはCDNのキャッシュコンテンツを自動的に管理します。そのため、コンテンツの公開時にはページが自動的に更新されます。サービスがレスポンスをキャッシュする場合、ページの更新に数時間から数日かかることがあるため、ご注意ください。
- 元のリクエスト送信者のクライアントIPアドレスを
X-Forwarded-For
ヘッダーに追加するか、このヘッダーの前に付加します。これは、クライアントをそれぞれ区別するために必要です。CloudFrontなどの多くのサービスでは、これらのヘッダーが自動的に保持されます。 - 所在地に基づくコンテンツのパーソナライズが機能するよう、静的ヘッダー
X-HubSpot-Trust-Forwarded-For: true
を渡します。この設定により、X-Forwarded-For
ヘッダーが信頼されるようになります。ただし、このヘッダーは全てのアップストリームプロキシーで更新されているとは限りません。 - 宛先ドメインの値が指定された
X-HS-Public-Host
ヘッダーを渡します。 - 全てのHTTPメソッドを許可します。
- プロキシードメイン用にSSL証明書が発行され、インストールされていることを確認します。
- 全てのクエリー文字列を転送します。
- 他の全てのリクエストヘッダーとレスポンスヘッダーをそのまま転送します(Cookieを含む)。
- ドメイン下の全てのパスがHubSpotにプロキシーされるのが理想的です。そうでない場合、ドメインからアセットを正しく読み込むために、パス
/_hcms/*
、/hs/*
、/hubfs/*
、hs-fs/hubfs/*
、/hs-fs/*
、/cs/c/*
、および/e3t/*
をプロキシーする必要があります。
2. 設定が正しいことを確認する
- HubSpotのドメイン設定で構成に関する問題を特定できます。
- HubSpotアカウントにて、メイン ナビゲーション バーの設定アイコンをクリックします。
- 左のサイドバーメニューでウェブサイト > ドメインとURLの順に移動します。
- リバースプロキシーに使用しているドメインの横にある編集ドロップダウンメニューをクリックし、リバースプロキシー接続を確認を選択します。
- [失敗]ラベルが付いたカテゴリーをクリックして、問題の修正に関する推奨事項を表示します。
- 修正を実装したら、テストの再読み込みをクリックして、設定を再度確認します。
- その他のアカウントで設定を確認するには、こちらのリンクにアクセスします:
https://[yourFullDomain]/_hcms/diagnostics
- 以下の情報を確認します。
- 現在の時刻値が読み込みごとに変化すること。これにより、ページがキャッシュされていないことを確認できます。
User-Agent
がブラウザーと一致していること。Accept-Language
の値がブラウザーと一致していること。Accept-Encoding
ヘッダーが*
に設定されていること。これにより、レスポンスが確実に圧縮されます。Cookie
値が空でないこと。Protocol
がhttps
に設定されていること。X-Forwarded-For
の一番左のIPアドレスがhttps://www.whatismyip.comなどのサービスから報告されるIPアドレスと一致していること。IP-Determined Location
の値が現在地に対して正確であること。この値はX-Forwarded-For
のIP関連ヘッダーに基づいています。
トラブルシューティング
診断URLにアクセスしたときに404
が表示される場合は、設定に問題があることが考えられます。
https://[yourFullDomain]/_hcms/_worker/headers
にアクセスして、HubSpotがリバースプロキシーを介してリクエストから受信している全てのヘッダーを確認します。
プロキシーの最も重要なヘッダーは以下の通りです。
X-Forwarded-For
X-HubSpot-Trust-Forwarded-For
X-HS-Public-Host
ボットイベントとして登録されたクリック数
Amazon CloudFrontを使用していて、ボットイベントとして登録されたクリックが表示されている場合、User-Agent
は訪問者のUser-AgentではなくAmazon CloudFrontとして設定されている可能性があります。これを修正するには、代わりに管理対象オリジンリクエストポリシーを更新して、訪問者のUser-Agent
を転送します。
3. ドメインをHubSpotに追加する
プロキシーを設定したら、次にドメインをHubSpotに追加します。標準的なドメイン接続プロセスと違い、HubSpotにドメインを完全には接続しない点にご注意ください。接続プロセスを開始して、ドメインをHubSpotのコンテンツ公開に使えるようにしますが、DNSプロバイダーにCNAMEレコードは作成しません。このプロセスを終えると、プロキシーはドメインに対する全てのリクエストを受信し、HubSpotへの特定のパスとその他のコンテンツホストへの他のパスのプロキシーを行うことを選択できます。 ドメインをHubSpotに追加するには、以下の操作を行います。- HubSpotのアカウントでドメイン設定に移動します。
- ドメインを接続をクリックします。
- プライマリーまたはセカンダリーを選択します。この機能では、リダイレクトドメインおよびEメール送信ドメインはサポートされていません。
- HubSpotの標準で用意されているコンテンツ配信ネットワーク(CDN)と接続スイッチをオフに切り替え、接続をクリックします。
- ドメインでホスティングするコンテンツタイプを選択し、次へをクリックします。
- ブランドドメインを入力します。例えば_www.website.com_を使用する場合、website.comを入力します。
- コンテンツをホスティングするサブドメインを入力します。サブドメインは、外部でホスティングされているドメインのサブドメインと一致している必要があります。次へをクリックします。
- 入力したドメインを確認し、次へをクリックします。
- 次に、HubSpotがドメインの所有権を確認しコンテンツ公開を許可できるよう、ドメインを確認します。
- DNSプロバイダーで、指定された値を使用してレコードを作成します。
- HubSpotで確認をクリックします。HubSpotがDNSプロバイダーに加えられた変更を認識し、ホスト名を確認するまでに最大4時間かかることがあります。
プロバイダー固有の設定手順
プロキシーの設定は上記の一般的な手順に沿って行えますが、以下にAmazon CloudFrontとnginxでリバースプロキシーを設定する手順について具体的に説明します。Amazon CloudFrontにおけるリバースプロキシーのセットアップ
Amazon CloudFrontでリバースプロキシーを設定するには、新しい代替ドメイン名を使用して新しいディストリビューションを作成し、新しいオリジンを作成してから、HubSpotコンテンツがホスティングされているページパスのキャッシュ動作を作成する必要があります。ディストリビューションの利用方法については、AWSの資料をご参照ください。- Amazon CloudFrontアカウントにログインします。
- 左側のサイドバーで**Distributions(ディストリビューション)**に移動します。
-
新規にセットアップする場合は、最初に**Create Distribution(ディストリビューションの作成)**をクリックして新しいディストリビューションを作成する必要があります。または、既存のディストリビューションを編集するか、オリジンと動作のセットアップ手順に進むことができます。
- [General(一般)]タブで[Edit(編集)]をクリックします。
- **代替ドメイン名(CNAMEs)(Alternate Domain Names (CNAMEs))**フィールドに、サブドメインを含むドメインを追加します。これはHubSpotに追加したドメインと一致している必要があります。
- **Yes, Edit(はい、編集します)**をクリックして変更を確定します。**General(一般)**タブが再び表示され、代替ドメイン名(CNAME)の横にドメインが一覧表示されます。
- また、[Domain Name(ドメイン名)]フィールドの値を使用してDNSプロバイダーに新しいCNAMEレコードを作成する必要があります。この値は
<value>.cloudfront.net
のようになります。
-
次に、新しいオリジンを設定します。
- **Origins and Origin Groups(オリジンとオリジングループ)**タブをクリックします。
- **Create Origin(オリジンの作成)**をクリックして、オリジンをセットアップします。
- ****[Origin domain(オリジンドメイン)]フィールドに、前述の表を基に
<HubID>.<suffix>
のCNAME値を入力します。この値は123.sites-proxy.hscoscdn20.net
のようになります。 - [Add custom header(カスタムヘッダーの追加)]の下の[Add header(ヘッダーの追加)]をクリックします。次に、以下のヘッダーの詳細を追加します。
- 所在地に基づくコンテンツのパーソナライズが機能するよう、エンドユーザーのIPの値を指定した
X-Client-IP
を渡すか(推奨)、または静的ヘッダーX-HubSpot-Trust-Forwarded-For: true
を渡します。後者の方法ではX-Forwarded-For
ヘッダーを信頼するようになりますが、このヘッダーは全てのアップストリームプロキシーで更新されていない可能性があります。 - 宛先ドメインの値が指定された
X-HS-Public-Host
ヘッダーを渡します。
- 所在地に基づくコンテンツのパーソナライズが機能するよう、エンドユーザーのIPの値を指定した
- ****[Origin domain(オリジンドメイン)]フィールドに、前述の表を基に
- 作成をクリックして変更内容を保存します。
-
次に、HubSpotコンテンツをホスティングするページパスのキャッシュ動作をセットアップします。
- **Behaviors(動作)**タブをクリックします。
- **Create Behavior(動作の作成)**をクリックします。
- **Path pattern(パスパターン)**フィールドに、HubSpotコンテンツがホスティングされるページのURLパスを入力します。特定のページのパス、またはワイルドカードなどのフレキシブルURLを指定できます。詳細については、パスパターンをご確認ください。
- **Origin and Origin Groups(オリジンとオリジングループ)**フィールドをクリックし、先ほど作成したオリジンを選択します。
- **Save changes(変更を保存)**をクリックします。