本文介绍IIS(Internet Information Service)作为Web服务的网站,访问故障相关的问题及解决方案。
本文介绍的IIS Web网站访问故障相关问题如下:
访问部署在Windows实例上的基于IIS搭建的Web网站时,提示“500 - 内部服务器错误”,如何处理?
问题描述
访问部署在Windows实例上的基于IIS搭建的Web网站时,提示“500 - 内部服务器错误”。
问题原因
该提示没有提供具体的错误项,您需要先查看网站的真实报错信息,才能针对性的定位和解决问题。本文主要介绍如何查看该场景下网站的真实报错信息。
您也可以通过网站运行过程中的常见问题排查流程,逐步排查具体问题并根据对应方案解决问题,具体操作,请参见无法访问ECS实例中运行网站的快速排查方法。
解决方案
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
您可以执行如下操作,查看真实报错信息。
远程连接Windows实例。
具体操作,请参见连接方式概述。
在桌面左下角,选择 > 服务器管理器。
在服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器。
在Internet Information Services (IIS) 管理器页面左侧导航栏,单击目标网站。
在IIS区域,双击错误页。
在Internet Information Services (IIS) 管理器页面右侧操作区域中,单击编辑功能设置。
在编辑错误页设置页面,选择详细错误,然后单击确定。
重新访问网站,并按
Ctrl
+
F5
键强制刷新浏览器。您可以查看到网站的真实报错信息。
根据报错信息,解决相关问题后重新访问该网站。
网站访问成功,问题解决。
如何在Windows实例的IIS网站中设置禁止通过IP地址直接访问?
问题描述
当在Windows实例上的IIS站点配置了允许通过IP地址直接访问(即IIS中绑定了空主机头)时,可以通过IP地址直接访问到服务器中IIS的默认站点。当有域名(包括恶意域名或未备案域名等)解析到该IP地址时,会通过该域名直接访问到网站内容,存在安全风险。
问题原因
当IIS中存在绑定空主机头时,会导致使用IP地址能够直接访问到IIS对应绑定空主机头的网站。
解决方案
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
您可以通过删除IIS中绑定空主机头的方式来禁止通过IP地址直接访问IIS网站,操作步骤如下:
远程连接Windows实例。
具体操作,请参见连接方式概述。
打开IIS管理器。
在桌面左下角,选择 > 服务器管理器。
在服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器。
在左侧导航栏单击目标网站,然后单击操作列的绑定,在网站绑定对话框的空主机头(即主机名参数为空)基础上再绑定一个网站域名。
以绑定
example.aliyundoc.com
域名为例,如图所示。使用服务器的公网IP地址和已绑定的
example.aliyundoc.com
域名访问网站。通过服务器的公网IP和域名都可以访问该网站,如图所示。
如果有其他恶意域名或未备案域名(例如
demo.aliyundoc.com
)解析到了服务器的IP地址,虽然在IIS中未绑定该主机头,但是也可以成功访问该网站,如图所示。
禁止通过IP地址直接访问网站。
在 Internet Information Services (IIS) 管理器的左侧导航栏单击目标网站,然后单击操作列的绑定。
在网站绑定对话框中单击空主机头(即主机名参数为空),单击删除,保留您需要的域名即可。
以保留
example.aliyundoc.com
域名为例,如图所示。使用其他恶意域名或未备案域名重新访问网站验证是否成功禁止通过IP地址直接访问网站。
恶意域名或未备案域名(例如
demo.aliyundoc.com
)即使解析到服务器的IP地址,也无法正常访问该网站,如图所示,即成功禁止通过IP地址直接访问网站。
基于IIS配置的网站因服务端口被占用导致无法访问,如何处理?
问题描述
访问基于IIS配置的网站失败,然后在Windows实例上使用netstat
命令查看IIS服务端口处于正常监听状态,并且网站系统进程处于运行状态。
问题原因
由于网站服务器端口被占用,导致无法访问网站。
解决方案
本操作步骤以网站服务端口为80端口、基于IIS配置网站的Windows实例操作系统为Windows Server 2019数据中心版64位中文版为例进行说明,具体操作以您实际的服务端口和Windows实例操作系统为准。
远程连接Windows实例。
具体操作,请参见连接方式概述。
在搜索栏输入
cmd
,然后单击命令提示符。执行
netstat -ano | findstr 80
命令,检查服务端口是否被监听,即服务端口是否处于LISTENING状态。以PID号即进程程序号为
4
的进程占用了IIS的80服务端口导致无法正常访问网站为例,回显示例如下。服务端口监听中:
如果80端口处于监听状态,有可能是其他程序占用了80端口,您可以通过
taskkill <PID>
(命令中<PID>
为程序进程号)来关闭相关程序,然后重启IIS程序。在本示例中,您需要执行
taskkill 4
命令来关闭占用80端口的程序,然后重启IIS程序。说明重启IIS程序的具体操作,请参见重启IIS。
服务端口未监听:
如果80端口处于未监听状态,请您重新运行IIS程序或检查网站是否处于运行状态。
重新访问该网站。
网站访问成功,问题解决。
访问基于IIS搭建的网站提示“403.14-Forbidden”错误,如何处理?
问题描述
在Windows实例上,访问基于IIS搭建的网站提示“HTTP错误 403.14-Forbidden Web 服务器被配置为不列出此目录的内容”错误,如图所示:
问题原因
导致该问题的可能原因如下:
解决方案
配置默认文档
如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在。
启用目录浏览
本文操作步骤以Windows Server 2019数据中心版64位中文版为例,实际操作以您实际的Windows实例操作系统为准。
使用IIS管理器启用目录浏览,操作步骤如下:
远程连接Windows实例。
具体操作,请参见连接方式概述。
在桌面左下角,选择 > 服务器管理器。
在服务器管理器页面右上角,选择工具 > Internet Information Services (IIS) 管理器。
在Internet Information Services (IIS) 管理器页面的IIS区域,双击目录浏览。
在Internet Information Services (IIS) 管理器页面右侧操作区域中,单击启用。
重新访问该网站。
网站访问成功,问题解决。