すべてのプロダクト
Search
ドキュメントセンター

CDN:CDN 変数リファレンス

最終更新日:Oct 28, 2026

送信レスポンスヘッダーやリクエストヘッダーの変更など、特定の CDN 機能を設定する際に、変数を使用して現在のリクエストやレスポンスのコンテキストを取得できます。変数は、リクエストメソッド、URL、クライアント IP アドレスなどの値を返し、きめ細かな制御を可能にします。このトピックでは、CDN がサポートするすべての変数について、各変数の値の例と注意事項を説明します。

変数の概要

CDN 変数は、有効ドメインによって、アクセスドメイン変数、オリジンフェッチドメイン変数、レスポンス変数に分類されます:

  • アクセスドメイン変数: CDN ノードがクライアントリクエストを処理し、キャッシュキーを生成するアクセスドメインで有効になる変数です。

  • オリジンフェッチドメイン変数: オリジンフェッチ中に有効になる変数です。一部の機能はオリジンフェッチドメインモジュールにデプロイされます。この場合、アクセスドメイン変数は有効にならず、オリジンフェッチドメイン変数に置き換える必要があります。

  • レスポンス変数: これらの変数を使用して、オリジンサーバーが CDN ノードに返すレスポンスヘッダーを取得できます。

次の表に、各有効ドメインの変数グループと変数を示します:

有効ドメイン

変数グループ

変数

アクセスドメイン

リクエストメソッド

$request_method

アクセスドメイン

HTTP バージョン

$server_protocol

アクセスドメイン

URI

$uri、$raw_uri、$request_uri

アクセスドメイン

リクエストパラメーター

$args、$arg_<parameter-name>

アクセスドメイン

リクエストヘッダー

$http_<request-header-name>

アクセスドメイン

ドメイン名

$host

アクセスドメイン

リクエストプロトコル

$scheme

アクセスドメイン

Cookie

$cookie_<parameter-name>

アクセスドメイン

IP アドレスとポート

$remote_addr、$remote_port、$x_server_addr、$x_server_port

アクセスドメイン

IP ジオロケーションとキャリア

$ip_isp_id、$ip_isp_en、$ip_country_id、$ip_country_en、$ip_region_id、$ip_region_en、$ip_city_id、$ip_city_en、$ip_longitude、$ip_latitude

アクセスドメイン

SSL/TLS

$ssl_cipher、$ssl_protocol、$ssl_client_cert、$ssl_client_raw_cert、$ssl_client_serial、$ssl_verify、$ssl_client_s_dn、$ssl_client_i_dn

アクセスドメイン

ノード名

$hostname

オリジンフェッチドメイン

プロトコル

$http_x_client_scheme、$proxy_scheme

オリジンフェッチドメイン

オリジンサーバー

$proxy_source

レスポンス変数

オリジンレスポンスヘッダー

$sent_http_<response-header-name>

変数をサポートする機能

アクセスドメインの機能

オリジンフェッチドメインの機能

制限事項

変数を参照する前に、すべての変数に適用される以下の条件と制限事項を確認してください:

  • SSL/TLS 変数は HTTPS リクエストにのみ適用されます。HTTP リクエストでこれらの変数を参照した場合、その値は空になります。

  • $ssl_client_* 変数は、クライアント証明書検証 (相互認証、または mTLS) が設定されている場合にのみ値を持ちます。標準の HTTPS リクエストでは、その値は空になります。

  • GeoIP 解決には精度の制限があります。市レベルおよび経度/緯度のフィールドは、通常、市の中心を識別するものであり、正確なジオフェンシングを必要とするブロッキングのユースケースには適していません。クライアント IP アドレスが識別できない場合、関連フィールドはデフォルト値を返します (たとえば、国コードは XX を返し、数値コード値は 0 を返します)。

  • $uri は、リダイレクトや内部書き換えなど、CDN の内部リクエストルーティングロジックによって変更される可能性があります。この変数の使用は推奨されません。変更されていないパスを取得するには、$raw_uri を使用してください。

ヘッダー変数の命名規則

CDN が HTTP リクエストヘッダーとレスポンスヘッダーを処理する際、それらを自動的に内部変数にマッピングします。変数名は、以下の規則に従う必要があります:

  • 固定プレフィックス: すべてのリクエストヘッダー変数は $http_ で始まり、すべてのレスポンスヘッダー変数は $sent_http_ で始まる必要があります。

  • 小文字への変換: ヘッダー名に含まれるすべての大文字は小文字に変換する必要があります。

  • ハイフンの置換: ヘッダー名に含まれるすべてのハイフン (-) はアンダースコア (_) に置き換える必要があります。

変換例:

元のヘッダー名

変換後の変数

Accept-Language

$http_accept_language

X-Forwarded-For

$http_x_forwarded_for

X-Customize-Header

$http_x_customize_header

アクセスドメインの変数

リクエストメソッド

$request_method

  • 意味: 現在のリクエストで使用されている HTTP リクエストメソッドです。

  • 値の例: GET、POST、HEAD、PUT、DELETE など。

HTTP バージョン

$server_protocol

  • 意味: 現在のリクエストで使用されている HTTP プロトコルバージョンです。

  • 値の例: HTTP/1.1、HTTP/2.0。

URI

$uri

  • 意味: 現在のリクエストの URL パスです (クエリパラメーターを除く)。

  • 値の例: /1.txt。

  • 注: この値は、リダイレクトや内部書き換えなど、CDN の内部リクエストルーティングロジックによって変更される可能性があります。この変数の使用は推奨されません。変更されていないパスを取得するには、$raw_uri を使用してください。

$raw_uri

  • 意味: 元のリクエストの URL パスです (クエリパラメーターを除く)。CDN の内部リクエストルーティングロジックはこの値を変更しません。

  • 値の例: /1.txt。

$request_uri

  • 意味: 元のリクエストの完全な URL パスです (クエリパラメーターを含む)。

  • 値の例: /1.txt?chapter=1&flag=on。

リクエストパラメーター

$args

  • 意味: URL 内の完全なクエリパラメーター文字列です (? を除く)。

  • 値の例: chapter=1&flag=on。

$arg_<parameter-name>

  • 意味: URL クエリパラメーター内の特定のパラメーターの値です。<parameter-name> を実際のパラメーター名に置き換えてください。

  • 値の例: $arg_flag は URL /1.txt?chapter=1&flag=on から値を抽出します。パラメーター flag の値は on です。

リクエストヘッダー

$http_<request-header-name>

  • 意味: クライアントリクエスト内の特定の HTTP リクエストヘッダーの値です。<request-header-name> を実際のリクエストヘッダー名に置き換えてください。

  • 値の例: $http_user_agent は User-Agent リクエストヘッダーの値を表し、$http_referer は Referer リクエストヘッダーの値を表します。

  • 注: リクエストヘッダーの変数名は、ヘッダー変数の命名規則に従う必要があります。

ドメイン名

$host

  • 意味: クライアントリクエスト内の元のドメイン名で、Host: <domain-name> リクエストヘッダーの値です。

  • 値の例: www.example.com。

リクエストプロトコル

$scheme

  • 意味: 現在のリクエストで使用されているプロトコルタイプです。

  • 値の例: http または https。

IP アドレスとポート

$remote_addr

  • 意味: クライアント IP アドレスです。

  • 値の例: 30.40.XX.XXX。

$remote_port

  • 意味: クライアントポート番号です。

  • 値の例: 63213。

$x_server_addr

  • 意味: 宛先 IP アドレスで、CDN ノードが外部に公開する仮想 IP アドレス (VIP) です。

  • 値の例: 122.228.XX.XXX。

$x_server_port

  • 意味: 宛先ポートで、CDN ノードが外部に公開するサービスポートです。

  • 値の例: 80 または 443。

IP ジオロケーションとキャリア

CDN はクライアント IP アドレス ($remote_addr) を使用して、そのジオロケーションとキャリア情報を解決します。これらの変数の値は、GeoIP 解決結果に基づいています。GeoIP 解決には精度の制限があります。市レベルおよび経度/緯度のフィールドは、通常、市の中心を識別するものであり、正確なジオフェンシングを必要とするブロッキングのユースケースには適していません。クライアント IP アドレスが識別できない場合、関連フィールドはデフォルト値を返します (たとえば、国コードは XX を返し、数値コード値は 0 を返します)。各ディメンションは、コード (_id サフィックス付き) と英語名 (_en サフィックス付き) の 2 つの値形式を提供します。

$ip_isp_id

  • 意味: クライアント IP アドレスが属するキャリアのコードです。

  • 値の例: China Telecom の場合、100017。

$ip_isp_en

  • 意味: クライアント IP アドレスが属するキャリアの英語名です。

  • 値の例: China Telecom の場合、ChinaTelecom。

$ip_country_id

  • 意味: クライアント IP アドレスが属する国またはリージョンのコードです。

  • 値の例: 中国の場合、CN。

$ip_country_en

  • 意味: クライアント IP アドレスが属する国またはリージョンの英語名です。

  • 値の例: 中国の場合、China。

$ip_region_id

  • 意味: クライアント IP アドレスが属するリージョンまたは省のコードです。

  • 値の例: 広東省の場合、440000。

$ip_region_en

  • 意味: クライアント IP アドレスが属するリージョンまたは省の英語名です。

  • 値の例: 広東省の場合、guangdong。

$ip_city_id

  • 意味: クライアント IP アドレスが属する市のコードです。

  • 値の例: 深センの場合、440300。

$ip_city_en

  • 意味: クライアント IP アドレスが属する市の英語名です。

  • 値の例: 深センの場合、shenzhen。

$ip_longitude

  • 意味: クライアント IP アドレスが属する市の経度です。

  • 値の例: 深センの場合、114.05787。

$ip_latitude

  • 意味: クライアント IP アドレスが属する市の緯度です。

  • 値の例: 深センの場合、22.54309。

SSL/TLS

SSL/TLS 変数は、HTTPS リクエストに関するセッション情報を提供します。

重要
  • これらの変数は HTTPS リクエストにのみ適用されます。HTTP リクエストで参照された場合、その値は空になります。

  • $ssl_client_* 変数は、事前にクライアント証明書検証が設定されている必要もあります。標準の HTTPS リクエストでは、その値は空になります。

$ssl_cipher

  • 意味: 現在のリクエストで使用されている暗号スイート (暗号化アルゴリズムの組み合わせ) です。

  • 値の例: TLS_AES_256_GCM_SHA384。

$ssl_protocol

  • 意味: 現在のリクエストで使用されている SSL/TLS プロトコルバージョンです。

  • 値の例: TLSv1.3。

$ssl_client_cert

  • 意味: クライアント証明書データです (証明書の内容が返されます)。

$ssl_client_raw_cert

  • 意味: クライアント証明書の生データです ($ssl_client_cert と同じ使用法で、元の証明書テキストが保持されます)。

$ssl_client_serial

  • 意味: クライアント証明書のシリアル番号です。

$ssl_verify

  • 意味: クライアント証明書の検証結果です。検証が成功した場合、値は SUCCESS です。

  • 値の例: SUCCESS。

$ssl_client_s_dn

  • 意味: クライアント証明書のサブジェクト識別名 (DN) です。

$ssl_client_i_dn

  • 意味: クライアント証明書の発行者識別名 (DN) です。

ノード名

$hostname

  • 意味: 現在のリクエストを処理する CDN ノードのホスト名です。

  • 値の例: cn2522 (実際のノード名が優先されます)。

オリジンフェッチドメインの変数

$scheme、$http_x_client_scheme、$proxy_scheme はすべてプロトコルタイプ (http または https) を返しますが、有効ドメインとそれぞれが返す値が異なります:

変数

有効ドメイン

説明

$scheme

アクセスドメイン

現在のリクエストで使用されるプロトコルタイプ

$http_x_client_scheme

オリジンフェッチドメイン

クライアントがリクエストを開始するために使用するプロトコルタイプ (クライアントスキーム)

$proxy_scheme

オリジンフェッチドメイン

CDN ノードがオリジンフェッチに使用するプロトコルタイプ (オリジンフェッチスキーム)

プロトコル

$http_x_client_scheme

  • 意味: クライアントがリクエストを開始するために使用するプロトコルタイプ (クライアントスキーム) です。

  • 値の例: http または https。

$proxy_scheme

  • 意味: CDN ノードがオリジンフェッチに使用するプロトコルタイプ (オリジンフェッチスキーム) です。

  • 値の例: http または https。

オリジンサーバー

$proxy_source

  • 意味: 現在のリクエストが実際にオリジンフェッチのために送信されるオリジンサーバーのアドレスです。

  • 値の例: origin.example.com または 192.0.2.1。

オリジンレスポンスヘッダー

$sent_http_<response-header-name>

  • 意味: オリジンレスポンス内の特定の HTTP レスポンスヘッダーの値です。<response-header-name> を実際のレスポンスヘッダー名に置き換えてください。

  • 値の例: $sent_http_content_type は、オリジンサーバーからの Content-Type レスポンスヘッダーの値 (text/html など) を表します。

  • 注: レスポンスヘッダーの変数名は、ヘッダー変数の命名規則に従う必要があります。