当我通过 HTTPS 从外部网络访问站点时,有没有办法查看 IIS 8.5 服务器的功能?它打开什么,什么文件夹结构,哪个文件?
我问这个是因为当我通过 HTTPS 从外部访问我的网站时,我总是被重定向到 IIS 默认页面,即使我停止了 IIS 中的默认网站并删除了默认情况下 inetpub/wwwroot 中的所有 html 文件。当我从内部访问 HTTPS 时,一切正常,如果我通过 HTTP 访问该站点,无论是内部还是外部,一切正常。
有没有办法查看服务器的功能?我可以记录一些东西或追踪一些东西吗?我现在看到的日志没有给我任何关于它为什么不起作用的信息。
编辑:
太奇怪了。当我通过 HTTPS 从外部打开站点时,它会打开:https ://mysite.mydomain.com/iis-85.png当我想从内部网络打开这个确切的 URL 时,我收到一个404 - File or Folder not found
错误。整个 IIS 上唯一包含此 iis-85.png 的文件夹就是这个:C:\Windows\WinSxS\amd64_microsoft-windows-iis-startserver_31bf3856ad364e35_6.3.9600.16384_none_bf87a3597b95c1cd
而且我认为它不可能从那里读取数据。
为什么是这样?难道这仍然被缓存?我尽一切努力更新缓存、删除临时 asp 文件、刷新 dns、重新启动每个站点、IIS 本身、每个应用程序池。我还能做什么?
编辑:好的,我明白了。HTTPS 通过防火墙 NAT 重定向到另一台服务器。
对我来说,这听起来好像外部请求从未真正到达您的服务器,它们似乎最终在不同的服务器上,这可以解释为什么看到您的服务器上不可用的页面。
有几种数据包嗅探方法可以在网络级别找到这一点,但是正如我们在这里讨论的 IIS,您可以启用
http.sys tracing
它允许您跟踪负责处理传入请求的 IIS 底层组件。摘自我自己的博文:
您通常可以使用 Tracing 查看 IIS 请求中发生的情况。对于 IIS 8.5,您可以在此处找到说明:
IIS 8.5 中的请求跟踪
您所描述的可能是由于不正确的绑定而发生的。IIS 基于绑定显示网站内容。如果您在外部使用的域名与内部域名不同,则必须在绑定选项卡中列出。这里描述了绑定:
将绑定添加到站点
(文章适用于 IIS 7,但 8 并没有太大不同)。因此,总而言之,如果您的内部域是“contoso.local”而外部域是“contoso.com”和“contoso-company.com”,那么您将需要 3 个条目/绑定。对于共享公共端口的 IIS 网站,绑定中的主机名可以确定哪个站点响应请求。
希望这可以帮助!