我的情况是这样的:
- 我的数据中心的应用程序网关:
- 后端池中有两台服务器,有 5 个网站(a.com、b.com 和 c.com)
- 另一个后端池,其中有两台服务器和 5 个网站(e.com、f.com 和 g.com)
在我的后端池中,我设置了一些块,以便某些外部 IP 无法访问网站(a.com),而所有其他网站(b.com 和 c.com)都可以被任何外部源访问。
应用程序网关文档指出,外部(客户端 IP)对于后端池是不可见的,因为到达后端池的(客户端 IP)是应用程序网关子网的 IP。
https://docs.microsoft.com/en-us/azure/architecture/example-scenario/gateway/firewall-application-gatewayat(仅限应用程序网关)
“参考文档 Azure:也就是说,应用程序网关终止来自客户端的 Web 会话,并与其后端服务器之一建立单独的会话。”
也就是说,我将在 IIS 上看到的 IP 来自应用程序网关子网。
这样,在 IIS 级别,我无法进行这种限制,因为如果不使用应用程序网关,我就无法像往常一样过滤外部 IP。
有没有其他方法可以通过应用程序网关或其他 Azure 层进行阻止?
记住,我在同一个应用程序网关上与多站点合作。
谢谢。
答案1
流量来自的 IP 始终是应用程序网关 IP,您实际上无法执行任何操作来更改这一点,并且对于前门等其他 Azure 服务也是如此。
但是,App Gateway 确实在请求中添加了一个名为“X-Forwarded-For”的标头,其中包含客户端的源 IP,因此如果您可以基于此进行过滤,那么您可以执行同样的事情。