Nginx在配置变量 $host $http_host和$proxy_host 区别
区别如下:
| 变量 | 是否显示端口 | 值 |
| $host | 不显示端口 | 浏览器请求的ip |
| $http_host | 端口存在则显示 | 浏览器请求的ip和端口号 |
| $proxy_host | 默认80端口不显示,其它显示 | 被代理服务的ip和端口号 |
相关文章:
Nginx系列目录:配置示例
三个变量的取值来源
- $host:优先取请求行中的主机名,否则取 Host 头,不含端口。
- $http_host:直接取请求头 Host 的值,含端口(如有)。
- $proxy_host:被代理服务的地址与端口(即 proxy_pass 的目标),默认 80 端口的 http 不显示。
使用建议
做多域名分流或重定向时用 $host 更稳妥(不含端口、格式规范);需要原样转发原始 Host 时用 $http_host。