跳转到主要内容

按 URL 路径选择不同后端

为同一域名配置多个路径前缀,并把请求转发到不同内网服务

同一个域名可以创建多条 HTTP(S) 隧道规则,通过“URL 路径前缀”把请求分给不同内网服务。例如 API、静态资源和默认站点可以共用一个公网域名。

配置示例

为 app.example.com 创建三条规则:

URL 路径前缀目标地址(IP:端口)匹配示例
/api/192.168.1.20:8080/api/users
/static/192.168.1.21:8080/static/app.css
留空192.168.1.22:3000其他所有路径

留空按 / 匹配;多个规则同时匹配时使用最长前缀,所以 /api/admin/ 可以覆盖更宽的 /api/。

配置文件模式:

[api]
host=app.example.com
location=/api/
target_addr=192.168.1.20:8080

匹配规则

  • 匹配是区分大小写的字面前缀,不是正则表达式。
  • 建议目录规则以 / 结尾;/api 也会匹配 /apix。
  • NPS 只按前缀选择目标,不会移除路径。后端仍收到完整的 /api/users。
  • HTTP keep-alive 后续请求会再次检查 Host 和路径,必要时切换规则。
  • HTTPS 必须在 NPS 上配置证书并终止 TLS。TLS 透传看不到 URL 路径,不能可靠地做路径分流。

为每个目标准备一个可识别的健康或版本响应,逐条请求边界路径,例如 /api/、/api2、/static/ 和 /。出现路由错误时,先检查是否缺少尾部斜杠,以及是否存在更长的前缀规则抢先匹配。