1

我有一个网站叫oldcompany.com. 我们的产品名称改变了,我想在网站前面使用Azure应用网关,以便重写URL,即使用newcompany.com主机名访问网站。

Azure 应用程序网关有一个功能,称为重写规则,允许修改请求和响应标头,记录在这里:https ://github.com/MicrosoftDocs/azure-docs/blob/master/articles/application-gateway/rewrite -http-headers-url.md#rewrite-http-headers-and-url-with-application-gateway。我想使用此功能的原因是它允许指定复杂的条件来重写标题。因此,我不想在 HTTP 设置上使用Override with new host name开关,而是覆盖Host通过应用程序网关的所有请求的标头。

我已经定义:

  • 侦听 HTTPS、端口 443、主机名的侦听器newcompany.com
  • 后端池指向oldcompany.com
  • 将侦听器绑定到后端池的规则

仅使用此配置,访问https://newcompany.com会导致 Azure 应用程序网关的 502 错误页面,这是预期的,因为Host请求中的标头仍然是newcompany.com,它不是服务器识别的虚拟主机(仅服务于 的请求oldcompany.com)。

因此,为了设置Host标头,我配置了一个与我的路由规则关联的重写规则集。此规则集有一条规则,将请求的Host标头更改为oldcompany.com.

但是,在访问https://newcompany.com. 我已从应用程序网关的访问日志中提取了请求,请求显示以下字段:

host_s: oldcompany.com
originalHost_s: newcompany.com
httpStatus_d: 502

这似乎是原始主机和重写主机的正确值。

我缺少什么来完成这项工作?

4

0 回答 0