カスタムオリジンサーバー を使うと、1 つ以上のカスタムホスト名のトラフィックを、既定のプロキシフォールバック以外へ送れます。例:
soap.stores.comはorigin1.comへ送られますtowel.stores.comはorigin2.comへ送られます
カスタムオリジンサーバーを使うには、次の要件を満たす必要があります。
- 各カスタムオリジンは、アカウントの DNS にあるプロキシ済み(オレンジクラウド)の A、AAAA、または CNAME レコードを持つ、有効なホスト名である必要があります。IP アドレスは使えません。
- カスタムオリジンサーバーの DNS レコードは、現時点ではワイルドカード値に対応していません。
カスタムオリジンを使うには、ダッシュボードで 新しいカスタムホスト名を作成する ときにそのオプションを選ぶか、API の POST コマンド で "custom_origin_server": your_custom_origin_server パラメーターを含めます。
カスタムオリジンとしてクラウドプロバイダーのエンドポイント(例: Azure App Service、AWS ALB、GCP Cloud Run)を使う場合、Host ヘッダーがそのエンドポイントに設定されたドメインと一致しないと、プロバイダーが 404 または 400 でリクエストを拒否することがあります。
既定では、Cloudflare は元のカスタムホスト名を Host ヘッダーとして送ります。クラウドプロバイダーが別のホスト名を期待する場合は、次のいずれかを行います。
- クラウドプロバイダー側で、カスタムホスト名を有効なドメインとして受け入れるよう設定する
- Origin Rule で
Hostヘッダーを上書きし、クラウドプロバイダーが期待するホスト名に合わせる
Cloudflare が既定のオリジンサーバーへ接続するとき、Host ヘッダーと SNI はどちらも、元のカスタムホスト名の値になります。
ただし、そのカスタムホスト名にカスタムオリジンを設定すると、SNI の値はカスタムオリジンになり、Host ヘッダーは元のカスタムホスト名のままです。これらの値が一致しないため、オリジンで Full (strict) は使えません。
この問題を解消するには、アカウントチームに連絡し、SNI rewrites の利用権限を依頼します。
SNI 書き換えで、カスタムホスト名が SNI 値をどう埋めるかを選びます。
-
Origin server name(既定): SNI をカスタムオリジンに設定する
- カスタムオリジンが
custom-origin.example.comの場合、SNI はcustom-origin.example.comです。
- カスタムオリジンが
-
Host header: SNI をホストヘッダー(またはホストヘッダーの上書き)に設定する
- ワイルドカードが無効でホスト名が
example.comの場合、SNI はexample.comです。 - ワイルドカードが有効でホスト名が
example.com、リクエストがwww.example.comに来た場合、SNI はwww.example.comです。
- ワイルドカードが無効でホスト名が
-
Subdomain of zone: SNI 値に設定する内容を選ぶ(カスタムホスト名、または任意のサブドメイン)
- ワイルドカードが無効でリクエストが
example.comに来た場合、SNI をexample.comにするかwww.example.comにするかを選べます。 - ワイルドカードが有効で SNI を
example.comに設定し、リクエストがwww.example.comに来た場合、SNI はexample.comです。
- ワイルドカードが無効でリクエストが
ダッシュボードで SNI 書き換えを設定するには、カスタムホスト名を作成する ときに Origin SNI value から希望のオプションを選びます。
API で SNI 書き換えを設定するには、カスタムホスト名を作成する ときに custom_origin_sni パラメーターを設定します。
- Custom origin name(既定): パラメーターを設定しない場合に適用されます
- Host header:
":request_host_header:"を指定する - Subdomain of zone:
"example.com"、またはカスタムホスト名の別のサブドメインを設定する