web-dev-qa-db-ja.com

Nginxの$ Hostと$ http_Hostの違いは何ですか

Nginxでは、変数$Host$http_Hostの違いは何ですか。

125
glarrain

$HostCore モジュールの変数です。

$ホスト

この変数は、リクエストのヘッダーの行ホスト、またはホストヘッダーが使用できない場合にリクエストを処理するサーバーの名前と同じです。

この変数は、そのような場合、$ http_Hostとは異なる値を持つ場合があります。1)Host入力ヘッダーが存在しないか、空の値を持つ場合、$ Hostはserver_nameディレクティブの値に等しくなります。 2)Hostの値にポート番号が含まれる場合、$ Hostにはそのポート番号は含まれません。 0.8.17以降、$ Hostの値は常に小文字です。

$http_Hostも同じモジュールの変数ですが、一般的に$http_HEADERref )として定義されているため、その名前の変数は見つかりません。

$ http_HEADER

小文字に変換され、「ダッシュ」が「アンダースコア」に変換された場合のHTTP要求ヘッダーHEADERの値。 $ http_user_agent、$ http_referer ...;


要約:

  • $http_Hostは常にHTTP_Host要求ヘッダーと等しくなります。
  • $Host$http_Hostと等しい、小文字でポート番号なし(存在する場合)、HTTP_Hostが存在しないか、空の値。その場合、$Hostは、要求を処理したサーバーのserver_nameディレクティブの値と等しくなります。
180
glarrain