1. ホーム
  2. configuration

[解決済み】Nginxの$hostと$http_hostの違いは何ですか?

2022-04-11 02:46:36

質問

Nginxにおいて、変数 $host$http_host .

解決方法は?

$host の変数です。 コア モジュールを使用します。

$host

<ブロッククオート

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

<ブロッククオート

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

$http_host も同じモジュールの変数ですが、その名前は見当たりません。 $http_HEADER ( レフ ).

$http_HEADER

<ブロッククオート

HTTPリクエストヘッダHEADERの値を小文字に変換し、「ダッシュ」を「アンダースコア」に変換したもの。


要約すると

  • $http_host は常に HTTP_HOST リクエストヘッダを返します。
  • $host イコール $http_host , 小文字で、ポート番号なし (存在する場合)です。 ただし HTTP_HOST が存在しないか、空の値である場合 . その場合 $host の値に等しくなります。 server_name ディレクティブで指定します。