最終更新日: 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でリバースプロキシーを設定する方法を詳しく説明します。このガイドを最後まで読み終えると、以下のことが完了できます。 なお、このガイドでは、既存のウェブサイトまたはアプリでリバースプロキシーに対応したCDNまたはウェブサービスが使用されていることを前提としています。

考慮事項

独自の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
Hub IDごとのサフィックス番号
HubIDの末尾サフィックス
00~1000
11~1910
20~2920
30~3930
40~4940
50~5900
60~6910
70~7920
80~8930
90~9940
例えばHub IDが123456で、米国東部データセンターにホスティングされている場合、正しいオリジンCNAMEは123456.sites-proxy.hscoscdn00.netになります。 使用するCNAMEを確認したら、続いてリバースプロキシーの一般的な設定手順と、Amazon CloudFrontおよびnginxに特化したガイドを参照して設定を進めます。

一般的な手順

一般的に、オリジンCNAMEを使用してリクエストを転送するようプロキシーを設定し、以下の設定を追加できます。
  1. HubSpotからのパスに関するキャッシュを実行しないようにプロキシーを設定します。HubSpotはCDNのキャッシュコンテンツを自動的に管理します。そのため、コンテンツの公開時にはページが自動的に更新されます。サービスがレスポンスをキャッシュする場合、ページの更新に数時間から数日かかることがあるため、ご注意ください。
  2. 元のリクエスト送信者のクライアントIPアドレスをX-Forwarded-Forヘッダーに追加するか、このヘッダーの前に付加します。これは、クライアントをそれぞれ区別するために必要です。CloudFrontなどの多くのサービスでは、これらのヘッダーが自動的に保持されます。
  3. 所在地に基づくコンテンツのパーソナライズが機能するよう、静的ヘッダーX-HubSpot-Trust-Forwarded-For: trueを渡します。この設定により、​X-Forwarded-For​ヘッダーが信頼されるようになります。ただし、このヘッダーは全てのアップストリームプロキシーで更新されているとは限りません。
  4. 宛先ドメインの値が指定されたX-HS-Public-Hostヘッダーを渡します。
  5. 全てのHTTPメソッドを許可します。
  6. プロキシードメイン用にSSL証明書が発行され、インストールされていることを確認します。
  7. 全てのクエリー文字列を転送します。
  8. 他の全てのリクエストヘッダーとレスポンスヘッダーをそのまま転送します(Cookieを含む)。
  9. ドメイン下の全てのパスが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値が空でないこと。
    • Protocolhttpsに設定されていること。
    • 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 CloudFrontnginxでリバースプロキシーを設定する手順について具体的に説明します。

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ヘッダーを渡します。
    • 作成をクリックして変更内容を保存します。
  • 次に、HubSpotコンテンツをホスティングするページパスのキャッシュ動作をセットアップします。
    • **Behaviors(動作)**タブをクリックします。
    • **Create Behavior(動作の作成)**をクリックします。
    • **Path pattern(パスパターン)**フィールドに、HubSpotコンテンツがホスティングされるページのURLパスを入力します。特定のページのパス、またはワイルドカードなどのフレキシブルURLを指定できます。詳細については、パスパターンをご確認ください。
    • **Origin and Origin Groups(オリジンとオリジングループ)**フィールドをクリックし、先ほど作成したオリジンを選択します。
    • **Save changes(変更を保存)**をクリックします。
ディストリビューション、オリジン、動作を設定すると、指定されたパスで作成するHubSpotページでリバースプロキシーが使用できるようになります。HubSpotでドメインを設定する手順に進みます。

nginxを使用したリバースプロキシーのセットアップ

nginxを使用してリバースプロキシーを設定するには、SSL情報とロケーションパス情報を含むロケーション設定ファイルを作成する必要があります。 nginxを使ってトラフィックをルーティングするには、いくつかのヘッダーと設定が必要です。以下は、出発点として使用できるnginxロケーション設定ファイルのサンプルスニペットです。
location ~ ^(/|/some-other-path) {
    proxy_set_header Host $http_host;
    proxy_set_header X-HS-Public-Host www.example.com;
    proxy_pass_request_headers on;
    proxy_set_header X-HubSpot-Trust-Forwarded-For true;
    proxy_pass https://2XX93.sites-proxy.hscoscdnXX.net;
    proxy_ssl_name www.example.com;
    proxy_ssl_server_name on;
    proxy_set_header   X-Real-IP $proxy_protocol_addr;
    proxy_set_header   X-Forwarded-Proto  $scheme;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-HubSpot-Client-IP $proxy_protocol_addr;
  }

location ~ ^(/hs|/_hcms|/hubfs|/hs-fs|/cs/c) {
    proxy_set_header Host $http_host;
    proxy_set_header X-HS-Public-Host www.example.com;
    proxy_pass_request_headers on;
    proxy_set_header X-HubSpot-Trust-Forwarded-For true;
    proxy_pass https://2XX93.sites-proxy.hscoscdnXX.net;
    proxy_ssl_name www.example.com;
    proxy_ssl_server_name on;
    proxy_set_header   X-Real-IP  $proxy_protocol_addr;
    proxy_set_header   X-Forwarded-Proto  $scheme;
    proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header   X-HubSpot-Client-IP $proxy_protocol_addr;
  }
上記のコードでは、プロキシー接続とコンテンツ ホスト ドメインが異なることにご注意ください。一方はHubSpotが提供するCNAMEですが(前述の表を参照)、もう片方はコンテンツの提供元であり、HubSpotに追加するドメインと一致するドメインです。この違いは、プロキシーとHubSpotのサーバー間の安全な接続を確立するSNI(サーバー名表示)接続プロセスによるものです。 nginxプロキシーでこれを有効にするには、上記のコードと同じように以下の設定を含めてください。
proxy_ssl_name www.example.com;
proxy_ssl_server_name on;
オリジンドメインがホストとは異なるため、これらの設定では、SNI SSL接続ハンドシェイクでサーバードメイン名を送信するようnginxに指示します。