Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Origin Rules のよくある質問

最終更新 Markdown で表示Agent セットアップ

Origin Rules について、よくある質問への回答をまとめます。

Origin Rule と Page Rule の両方で Host ヘッダー / DNS レコードの上書きを行うと、どうなりますか?

この場合、Origin Rule のパラメーターが Page Rule のパラメーターより優先されます。

次の例を考えてください。

  • Page Rule が Host ヘッダーの上書きを定義し、resolve override(または DNS レコードの上書き)は定義していません。Origin Rule が DNS レコードの上書きを定義し、Host ヘッダーの上書きは定義していません。結果のリクエストは、Host ヘッダーが Page Rule の値、オリジンのホスト名が Origin Rule の値になります。
  • Page Rule が Host ヘッダーの上書きを定義し、Origin Rule も Host ヘッダーの上書きを定義しています。結果のリクエストの Host ヘッダーは、Origin Rule の値になります。

Host ヘッダーと DNS レコードの上書きを含む Page Rules は、自動的に Origin Rules へ移行されますか?

はい。Page Rules 移行ガイド で、移行の最新情報を確認してください。

複数の Origin Rules が現在のリクエストに一致すると、どうなりますか?

2 つ以上の Origin Rules がリクエストに一致すると、それらの構成がマージされます。2 つの構成をマージするとき、後のルールの設定が前のルールの設定を上書きし、構成プロパティを更新または追加します。Cloudflare が最終的に適用する構成は、このマージ結果です。

たとえば、次の 2 つの Origin Rules を設定し、両方とも一致した場合、Cloudflare は 1 つ目のルールで設定した宛先ポートと、2 つ目のルールで設定した DNS ホスト名の上書きおよび Host ヘッダー値を使います。

Origin rule #1

Parameter Value
Set Host header example.com
Set destination port 8081

Origin rule #2

Parameter Value
Set Host header example.net
Set DNS hostname example.net

API 利用者向けの JSON 例

API を使う 場合、Origin Rule のパラメーターは action_parameters オブジェクトで設定します。

{
	"rules": [
		{
			"expression": "http.request.uri.query contains \"/eu/\"",
			"description": "Origin rule #1",
			"action": "route",
			"action_parameters": {
				"host_header": "example.com",
				"origin": {
					"port": 8081
				}
			}
		},
		{
			"expression": "http.request.uri.query contains \"/eu/\"",
			"description": "Origin rule #2",
			"action": "route",
			"action_parameters": {
				"host_header": "example.net",
				"origin": {
					"host": "example.net"
				}
			}
		}
	]
}

適用されるマージ後の構成は次のとおりです。

Parameter Value
Set Host header example.net
Set destination port 8081
Set DNS hostname example.net

ルール #2 でも宛先ポートを設定している場合、その値がルール #1 で定義した宛先ポート 8081 を上書きします。

役に立ちましたか?