В Nginx, какая разница между переменными $host
и $http_host
.
Какая разница в $host и $http_host в Nginx
Ответ 1
$host
является переменной модуля Core.
$хост
Эта переменная равна строке Host в заголовке запроса или имя сервера, обрабатывающего запрос, если заголовок узла не является доступны.
Эта переменная может иметь другое значение от $http_host в таких случаях: 1) когда отсутствует входной заголовок хоста или имеет пустое значение, $host равно значению директивы server_name; 2), когда значение Host содержит номер порта, $host не включает этот номер порта. Значение $host всегда имеет нижний регистр с 0.8.17.
$http_host
также является переменной того же модуля, но вы не найдете его с этим именем, потому что оно определяется как $http_HEADER
(ref).
$http_HEADER
Значение заголовка HTTP-заголовка HEADER при преобразовании в нижний регистр и с тиреми, преобразованными в "подчеркивания", например. $http_user_agent, $http_referer...;
Резюмируя:
-
$http_host
всегда всегда является заголовком запросаHTTP_HOST
. -
$host
равно$http_host
, в нижнем регистре и без номера порта (если имеется), кроме случаев, когдаHTTP_HOST
отсутствует или является пустым значением. В этом случае$host
равно значению директивыserver_name
сервера, обработавшего запрос.