You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用HAProxy将同域名不同路径转发至后端不同端口?

HAProxy路径转发规则修正方案

你的配置问题出在两个核心点:

  1. path_beg 语法误用:path_beg 是匹配路径的起始前缀,不需要加 *,添加后会把 * 当作路径的固定部分去匹配,直接导致规则失效。
  2. 规则顺序逻辑错误:/app1/app2/* 同时满足 /app1 的前缀匹配,如果先判断 is_test-app1,所有 /app1/app2 路径的请求会被优先匹配到 server1:xxx,永远走不到 server1:yyy 的规则。

修正后的配置:

acl is_test-app hdr_end(host) -i testmysite.com
acl is_test-app2 path_beg /app1/app2
acl is_test-app1 path_beg /app1

use_backend server1:yyy if is_test-app is_test-app2
use_backend server1:xxx if is_test-app is_test-app1

关键说明:

  • 将更具体的路径规则(/app1/app2)放在前面,确保精确匹配的请求优先命中对应后端。
  • path_beg 只需填写路径前缀本身,HAProxy会自动匹配所有以此开头的路径(比如 /app1/app2/xxx、/app1/app2/yyy/zzz 等)。
  • 若需严格匹配 /app1/ 开头且排除 /app1/app2 的请求,也可使用 path_reg 做正则匹配,但上述顺序调整已能满足需求,且性能更优。

内容的提问来源于stack exchange,提问作者Ian Twy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:12:04