Quelle est la différence de $host et $http host dans Nginx
Dans Nginx, quelle est la différence entre les variables $host
et $http_host
.
1 réponses
$host
est une variable de la Base module.
$ host
Cette variable est égale à Line Host dans l'en-tête de request ou nom du serveur traitant la requête si l'en-tête Host N'est pas disponible.
Cette variable peut avoir une valeur différente de $http_host cas: 1) lorsque L'en-tête D'entrée de L'hôte est absent ou a une valeur vide, $ host est égal à la valeur de la directive server_name; 2) lorsque la valeur de l'Hôte contient numéro de port, $host n'inclut pas ce numéro de port. la valeur de $host est toujours en minuscules depuis 0.8.17.
$http_host
est aussi une variable du même module mais vous ne la trouverez pas avec ce nom car elle est définie génériquement comme $http_HEADER
(réf ).
$ http_HEADER
La valeur de L'en-tête D'en-tête de requête HTTP lorsqu'il est converti en minuscules et avec 'tirets' convertis en 'underscores', par exemple $http_user_agent, $ http_referer...;
Résumé:
-
$http_host
est toujours égal à l'en-tête de requêteHTTP_HOST
. -
$host
est égal à$http_host
, les minuscules et sans le numéro de port (si présent), , sauf lorsqueHTTP_HOST
est absent ou est une valeur vide. Dans ce cas,$host
est égal à la valeur de la directiveserver_name
du serveur qui a traité la requête.