In Nginx, qual è la differenza tra le variabili $host
e $http_host
.
risposta
$host
è una variabile del modulo Core.
$ host
Questa variabile è uguale alla linea Host nell'intestazione della richiesta oppure nome del server di elaborazione della richiesta se l'intestazione host non è disponibili.
Questa variabile può avere un valore diverso da $ HTTP_HOST in tali casi: 1) quando l'intestazione host ingresso è assente o ha un valore vuoto, $ host è uguale al valore della direttiva server_name; 2) quando il valore di Host contiene il numero di porta, $ host non include quel numero di porta. Il valore di $ host è sempre in minuscolo da 0.8.17.
$http_host
è anche una variabile dello stesso modulo, ma non troverete con quel nome perché è definito genericamente come $http_HEADER
(ref).
$ http_HEADER
Il valore della richiesta HTTP Header Header quando convertite in caratteri minuscoli e con 'trattini' convertito 'sottolineatura', per esempio $ http_user_agent, $ http_referer ...;
Riassumendo:
$http_host
uguale sempre l'intestazioneHTTP_HOST
richiesta.$host
uguale$http_host
, minuscole e senza il numero di porta (se presente), tranne quandoHTTP_HOST
è assente o è un valore vuoto. In tal caso,$host
è uguale al valore della direttivaserver_name
del server che ha elaborato la richiesta.
- 1. Qual è la differenza tra --host e --target in gcc?
- 2. Qual è la differenza tra Docker Host e Container
- 3. Qual è la differenza tra apache/nginx/IIS
- 4. Qual è la differenza tra = e: =
- 5. Qual è la differenza tra `##` e `hashCode`?
- 6. Qual è la differenza tra dict() e {}?
- 7. qual è la differenza tra:.! e: r !?
- 8. Qual è la differenza tra Verilog! e ~?
- 9. Qual è la differenza tra ("") e (null)
- 10. Qual è la differenza tra? : e ||
- 11. qual è la differenza tra [[], []] e [[]] * 2
- 12. Qual è la differenza tra $ e $$?
- 13. Qual è la differenza tra " " e ""?
- 14. Qual è la differenza tra {0} e ""?
- 15. Qual è la differenza tra {0} e +?
- 16. Qual è la differenza tra .ToString() e + ""
- 17. Qual è la differenza tra echo e Write-Host in PowerShell?
- 18. qual è la differenza tra "localhost" e "127.0.0.1"?
- 19. Differenza tra uwsgi_pass e proxy_pass in Nginx?
- 20. Qual è la differenza tra href e path nell'oggetto Url.parse()?
- 21. Qual è la differenza tra "in fp" e "in fp.readlines()"?
- 22. Qual è la differenza tra l'archivio di certificati Host personali e Web Hosting?
- 23. Qual è la differenza tra Metodi e Attributi in Ruby?
- 24. qual è la differenza tra @ id/e @ + id/in android?
- 25. Qual è la differenza tra 'e "in? JavaScript
- 26. Qual è la differenza tra booleano e booleano in Java?
- 27. Qual è la differenza tra target e currenttarget in flex?
- 28. In .NET, qual è la differenza tra AsFoo() e ToFoo()?
- 29. Qual è la differenza tra reindirizzamento e inoltro in Symfony?
- 30. Qual è la differenza tra identità e uguaglianza in OOP?
$ host è specificamente ** il primo 'server_name' ** definito nel blocco del server corrente. se hai più 'server_name's, apparirà solo il primo. –
Vero. In effetti, è abbastanza tipico definire: server_name example.com www.example.com; – glarrain
puoi avere anche più direttive 'server_name'. se ti capita di avere una regex nel primo, questo diventa '$ host', e tutti i tipi di cose brutte possono accadere durante le regole di riscrittura. –