Azure Front Door Premium中URL重写主机名的实现方法
针对你需要将 https://myhost.domain1.com/path 指向 myotherhost.domain2.com/path 的需求,结合Front Door规则引擎的限制,分两种场景给出具体操作:
场景1:让客户端跳转至新URL(浏览器地址栏显示新主机名)
规则引擎的重写动作仅支持路径修改,要改变客户端可见的主机名,必须用重定向动作:
- 新建规则引擎规则:
- 条件配置:添加两个匹配条件——
主机名等于myhost.domain1.com,且URL路径等于/path - 动作配置:选择「重定向」,具体参数:
- 重定向类型:选301(永久跳转,适合长期变更)或302(临时跳转)
- 目标协议:保持HTTPS
- 目标主机名:手动输入
myotherhost.domain2.com - 目标路径:选择「保留原始路径」(确保
/path被携带) - 查询字符串:按需选择保留或清空
- 条件配置:添加两个匹配条件——
场景2:客户端URL不变,FD后台转发至新主机
如果不需要客户端跳转,仅需FD将请求转发到新主机的对应路径,需补充以下配置(你已设置的Origin Host Header只是其中一步):
- 源组配置修正:
- 在你的源组中,将源地址改为
myotherhost.domain2.com(而非原myhost.domain1.com) - 保持该源的
Origin host header设置为myotherhost.domain2.com(这一步你已完成)
- 在你的源组中,将源地址改为
- 规则引擎(可选):如果路径无需调整,无需额外重写动作;若需修改路径,添加「重写动作」并设置目标路径为
/path即可
为什么单独设置Origin Host Header没用?
Origin Host Header仅控制FD发送给源站的Host请求头,但如果源地址还是指向原主机,FD仍然会把请求发往myhost.domain1.com,只是带上新的Host头,自然无法达到转发到新主机的效果。必须同时把源地址指向目标主机,才能实现后台转发。
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

