В чем разница между $host и $http host в Nginx



в Nginx, в чем разница между переменными $host и $http_host.

618   1  

1 ответ:

$host - Это переменная базовый модуль.

$host

эта переменная равна строке Host в заголовке запроса или имя сервера, обрабатывающего запрос, если заголовок узла отсутствует доступный.

эта переменная может иметь другое значение, чем $http_host в таких случаи: 1) когда входной заголовок Хоста отсутствует или имеет пустое значение, $host равно значению директивы server_name; 2)когда значение хост содержит номер порта, $host не включает этот номер порта. значение $ host всегда строчное, начиная с 0.8.17.

$http_host также является переменной того же модуля, но вы не найдете его с этим именем, потому что он определяется в общем виде как $http_HEADER ( ref).

$http_HEADER

значение заголовка HTTP-запроса заголовок при преобразовании в нижний регистр и с "тире" преобразуется в 'подчеркивает', например, $http_user_agent, $http_referer...;


подведение итогов:

  • $http_host равно всегда HTTP_HOST заголовок запроса.
  • $host равна $http_host,в нижнем регистре и без номера порта (если имеется), кроме тех случаев, когда HTTP_HOST отсутствует или является пустым значением. В таком случае, $host равно значению server_name директива сервера, который обработал запрос.

Comments

    Ничего не найдено.