我们在Azure上部署了我们的服务。
出于安全目的,在web.config中我们设置了以下参数:
<security>
<requestFiltering removeServerHeader ="true"></requestFiltering>
</security>
我在Postman工具上测试这个,当请求发送成功(200请求OK)时,服务器被隐藏响应。
问题:
现在对于相同的请求,如果我更改主机名(比如xyz(任何东西:假))那么在响应头中它显示为
我认为它来自IIS(Azure)。
希望有人能帮助我,
谢谢
Azure App Services(您正在使用的,基于屏幕截图)使用多租户环境来托管应用程序。 SSL命令发生在称为前端服务器(在IIS10上运行并使用ARR模块)的VM中,然后命中实际托管正在运行的应用程序的Workers。
前端服务器与您的某个工作服务器之间的路由/负载平衡是根据传入请求中的“主机”HTTP标头执行的。如果没有标头,前端服务器不知道哪些工作人员分配给您的站点,因此无法路由请求。
这就是为什么你得到“404 Site Not Found”响应 - FE发送它。这也是你看到标题的原因,你的web.config从未到过。
TLDR:
如果没有正确的主机标头,您的应用程序将永远不会到达,多租户拼图的另一部分将响应404 Site Not Found作为路由中断。