如何将Azure Front Door主机名用作虚拟机后端网站的域名
结论
该需求完全可以实现,当前出现的访问AFD域名跳转虚拟机IP的问题,本质是请求链路中主机头配置错误,导致后端站点生成重定向地址时错误使用了虚拟机IP作为主机字段。
问题根因
浏览器访问*.azurefd.net时,请求链路中如果某一层(AFD/应用网关/后端站点)没有保留用户请求的原始主机头,后端站点拿到的主机字段就是虚拟机IP,返回的重定向响应Location头就会拼接IP作为地址,触发浏览器跳转到IP,导致地址栏域名变更。
修复步骤
- 配置Azure Front Door源组规则
进入对应AFD实例的「源组」配置页面,找到绑定应用网关的源条目,将源主机头字段设置为{original_host},确保AFD向后端转发请求时,携带用户真实访问的*.azurefd.net作为主机头,不要填写应用网关地址或虚拟机IP。 - 调整应用网关转发规则
进入应用网关实例的「HTTP设置」配置页,勾选使用原始主机名作为后端主机名选项,避免应用网关转发请求时覆盖主机头为后端虚拟机IP。 - 修正后端站点配置
登录部署网站的虚拟机,调整站点服务配置:- IIS站点:检查站点绑定的主机名规则,允许匹配
*.azurefd.net,同时删除所有写死虚拟机IP的HTTP重定向规则,确保重定向时读取请求的Host字段生成地址。 - Nginx/Apache站点:检查配置文件中的
server_name、rewrite重写规则、3xx重定向配置,删除写死虚拟机IP的逻辑,配置为读取请求Host字段生成重定向地址。
- IIS站点:检查站点绑定的主机名规则,允许匹配
验证操作
所有配置完成后清空浏览器缓存,重新访问*.azurefd.net域名,触发站点内的重定向逻辑时,地址栏会保留*.azurefd.net域名,不会跳转至虚拟机IP。
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

