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_hostest toujours égal à l'en-tête de requêteHTTP_HOST. -
$hostest égal à$http_host, les minuscules et sans le numéro de port (si présent), , sauf lorsqueHTTP_HOSTest absent ou est une valeur vide. Dans ce cas,$hostest égal à la valeur de la directiveserver_namedu serveur qui a traité la requête.