Azure Application Gateway V2覆写后端路径不生效 静态资源加载异常
问题根因
你遇到的问题和后端主机名覆写配置无关,核心是HTTP设置中的全局后端路径覆写规则配置错误:
- 当你在HTTP设置中直接填写
/randompath作为覆写后端路径时,所有匹配该路由的请求(包括静态资源请求)都会被强制转发到后端的/randompath路径,丢弃原始请求的路径后缀。首页能正常加载是因为你访问根路径/时刚好被转发到首页对应的/randompath,但静态资源的/assets/*路径会被直接覆盖,导致后端无法匹配到对应资源。 - 你观察到的浏览器请求
cname-website.com/assets/*属于正常行为:相对路径的静态资源本来就会以当前访问的域名作为基准发起请求,和后端主机名覆写配置没有关系。
修复方案
方案1:调整全局路径覆写配置(保留路径后缀)
如果你的需求是给所有访问路径统一追加/randompath前缀(例如访问/a.html转发到/randompath/a.html,访问/assets/img/logo.svg转发到/randompath/assets/img/logo.svg),只需要把HTTP设置中的覆写后端路径从/randompath改为/randompath/(末尾增加斜杠),应用网关会自动保留原始请求的路径后缀追加到覆写路径之后。
方案2:使用重写规则集实现精准路径改写
如果仅需要改写根路径请求,其他路径保持不变,不要使用HTTP设置里的全局路径覆写,改为配置重写规则集:
- 创建新的重写规则,匹配请求路径为
/的请求,将路径重写为/randompath - 静态资源等其他路径的请求不做改写,直接透传给后端
主机名覆写验证方法
如果需要确认后端主机名覆写配置是否正常,可以登录后端服务器查看访问日志,确认应用网关转发过来的请求的Host头是否为website.com即可。
内容的提问来源于stack exchange,提问作者achahbar
相关产品推荐
相关产品推荐

