LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

分清这些变量:Nginx 中几个易混的 $host与 $port

admin
2026年4月10日 9:44 本文热度 65

$http_host变量

获取原始Host请求头数值,可能为空

server {
    listen 8080;
    server_name test.example.com;

    location /test-host {
        default_type text/plain;
        return 200 "http_host variable: $http_host \n";
    }
}
[root@bogon vhosts]# curl -x http://localhost:8080 http://api.example.com/test-host
http_host variable: api.example.com

[root@bogon vhosts]# curl -H "HOST: test1.com" http://localhost:8080/test-host
http_host variable: test1.com

[root@bogon vhosts]# curl -H "HOST: test1.com:8080" http://localhost:8080/test-host
http_host variable: test1.com:8080

[root@bogon vhosts]# curl -0  -H "HOST: " http://localhost:8080/test-host
http_host variable:

proxy_host变量

proxy_pass指令中指定的代理服务器名称和端口

$proxy_port变量

proxy_pass指令中指定的后端服务器地址所包含的端口或所用协议的默认端口, 数值来源如下

情况一: proxy_pass指定了端口号

proxy_pass http://192.168.1.100:8080;
$proxy_port 的值是 `8080`

情况二: 使用协议的默认端口

当在 proxy_pass指令中只写了主机名或IP,没有写端口号时,Nginx 会使用该 URL 协议对应的标准默认端口。

proxy_pass http://backend-server;
协议是 `http://`,其默认端口是 `80`
$proxy_port 的值是 `80`

proxy_pass https://secure-backend;
协议是 `https://`,其默认端口是 `443`
$proxy_port 的值是 `443`

特殊情况

当 proxy_pass指令中使用变量来构造上游地址时,$proxy_port在大多数情况下会是一个空字符串。

set $upstream http://dynamic-backend;
proxy_pass $upstream;
在这种情况下,$proxy_port 的值通常是 `""`(空)

原因:Nginx 在配置解析阶段无法确定变量 $upstream最终的值,因此也无法从中提取出端口号。$proxy_port是在Nginx运行时内部设置的,对于变量形式的代理目标,这个信息可能无法被正确捕获

$server_port变量

处理当前请求的 Nginx server块所监听的TCP端口号


该文章在 2026/4/10 9:44:56 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-1  粤公网安备44030602007207号