跳转到主要内容

改写 HTTP 后端收到的 Host

公网域名与内网站点名称不同时,为后端设置正确的 Host 请求头

公网域名与内网站点绑定的虚拟主机名不一致时,可使用“改写 Host 请求头”让后端命中正确站点。例如访问者请求 preview.example.com,但内网 Nginx 只接受 app.internal.example。

配置

在 Web 管理中新增或编辑 HTTP(S) 隧道:

字段示例
域名preview.example.com
目标地址(IP:端口)192.168.1.20:8080
改写 Host 请求头app.internal.example

保存后,新请求转发到后端时将使用:

Host: app.internal.example

留空会保留访问者原始的 Host。只填写主机名;后端确实按非标准端口区分虚拟主机时才加入 :端口。

配置文件模式可使用:

[preview]
host=preview.example.com
target_addr=192.168.1.20:8080
host_change=app.internal.example

验证与限制

可在后端访问日志中加入 $host / %v,或临时运行回显服务检查 Host。该设置只修改转发的 HTTP 请求头,不修改公网 DNS、TLS SNI 或浏览器地址栏;TLS 透传时 NPS 无法解析和改写 HTTP Host。若后端仍返回默认站点,检查站点规则的协议、证书终止方式以及后端虚拟主机配置。