Azure容器应用与应用网关主机名配置问题:URL跳转异常
Azure应用网关+容器App的URL跳转问题:原因与解决方法
问题原因
你当前的应用网关后端配置中,“主机名覆盖”设为了“从后端目标选择主机名”,这会让应用网关在转发请求时,将后端容器App的域名作为Host请求头发送给容器App。而你的PHP应用生成相对URL时依赖$_SERVER['HTTP_HOST']变量,这个变量的值就是请求中的Host头(也就是容器App的域名),所以页面内的相对链接会指向容器App的地址,而非应用网关的公网IP,点击后就会出现错误页面。
解决方法
- 修改应用网关后端设置:将“主机名覆盖”选项改为自定义,填入应用网关的公网IP地址。这样应用网关转发请求时会把
Host头设置为该IP,容器App接收到的$_SERVER['HTTP_HOST']就会变成应用网关IP,Web应用生成的相对URL就会基于这个IP构建。 - 验证配置生效:修改完成后等待应用网关配置更新(或手动触发后端池配置刷新),重新访问应用网关IP,打印
$_SERVER['HTTP_HOST']确认值已变为应用网关IP,再测试页面内的相对链接是否正常跳转。 - 后续优化(可选):如果计划给应用网关绑定自定义域名,直接将自定义域名填入“主机名覆盖”的自定义字段即可,这样生成的URL会使用自定义域名,比IP更易访问和维护。
内容的提问来源于stack exchange,提问作者vlauciani
相关产品推荐
相关产品推荐

