基础网络层面排查
在深入检查IIS配置之前,首先必须确保基础的网络连接是通畅的,很多时候,问题并非出在服务器本身。
DNS解析验证
这是最首要的检查步骤,域名需要被正确解析到您服务器的公网IP地址。
- 操作方法:在本地电脑的命令提示符(CMD)中,执行
ping yourdomain.com
(将yourdomain.com
替换为您的实际域名)。 - 预期结果:命令应该返回一个IP地址,这个地址必须是您服务器的公网IP。
- 问题分析:
ping
不通或返回的IP地址错误,说明DNS配置有问题,您需要登录您的域名提供商(如阿里云、腾讯云、GoDaddy等)的管理后台,检查域名的A记录或CNAME记录是否正确指向了服务器IP。- DNS修改后全球生效需要时间(通常为几分钟到24小时),您可以使用
nslookup
命令或在一些DNS查询网站上查看全球各地的解析情况。
防火墙与安全组设置
服务器的防火墙或云平台的安全组可能会阻止外部访问。
- 服务器防火墙:检查Windows服务器自带的防火墙,确保入站规则中,允许了对应端口(通常是HTTP的80端口和HTTPS的443端口)的流量,您可以临时禁用防火墙进行测试,如果测试后可以访问,则说明是防火墙规则问题,应立即重新配置正确的规则而非长期禁用。
- 云平台安全组:如果您的服务器部署在阿里云、腾讯云、AWS等云平台上,还需要检查平台层面的“安全组”设置,安全组作用类似于防火墙,需要配置规则,允许来自任何IP地址(
0.0.0/0
)访问您的服务器的80和443端口。
IIS服务与网站状态检查
确认网络层面无虞后,接下来检查IIS本身的服务和网站基本状态。
IIS服务是否运行
确保“World Wide Web 发布服务”(W3SVC)正在运行。
- 操作方法:按
Win + R
,输入services.msc
打开服务列表,找到 “World Wide Web Publishing Service”,检查其状态是否为“正在运行”。
网站状态检查
在IIS管理器中,检查您对应的网站。
- 操作方法:打开IIS管理器,在左侧连接窗格中找到您的网站,右侧的操作窗格中,如果显示“停止”,请点击“启动”。
- 本地访问测试:在服务器上,打开浏览器,尝试通过
http://localhost
或http://127.0.0.1
访问网站,如果本地也无法访问,问题大概率出在IIS配置或应用程序本身;如果本地可以访问,而外网不行,则问题更可能出在防火墙、DNS或绑定配置上。
深入IIS核心配置排查
这是排查的核心环节,大部分问题都源于此处的配置不当。
网站绑定配置
这是最常见的错误来源,绑定指定了网站响应哪个IP地址、端口和主机名(域名)的请求。
- 操作方法:在IIS管理器中选中您的网站,在右侧操作窗格点击“绑定…”。
- 检查要点:
- 类型:通常是
http
或https
。 - IP地址:如果您的服务器有多个IP,请确保选择的是正确的那个,或者选择“全部未分配”。
- 端口:HTTP通常是
80
,HTTPS是443
。 - 主机名:这是关键!这里必须填写您的域名(如
www.yourdomain.com
),如果您希望用户通过yourdomain.com
和www.yourdomain.com
都能访问,需要添加两条绑定,分别对应这两个主机名,如果此项留空,则该网站会成为该IP和端口下的默认网站,会响应所有未匹配到其他主机名的请求。
- 类型:通常是
下表小编总结了绑定的常见配置:
配置项 | 正确示例 | 常见错误 |
---|---|---|
类型 | http | 类型错误,如设为 https 但未配置证书 |
IP地址 | 全部未分配 或服务器的具体公网IP | 绑定了内网IP或错误的公网IP |
端口 | 80 | 端口被占用或填写错误,如 8080 |
主机名 | www.yourdomain.com | 未填写主机名,导致被其他默认网站接管;或填写了错误的域名 |
应用程序池配置
每个网站都关联一个应用程序池,它负责管理工作进程。
- 操作方法:在IIS管理器中,点击左侧的“应用程序池”,找到您网站对应的应用程序池。
- 检查要点:
- 状态:必须为“已启动”。
- .NET CLR 版本:如果您的网站是基于.NET Framework开发的(如Web Forms, MVC 5),请选择正确的版本(如
v4.0
),如果是.NET Core/.NET 5+应用,则应选择“无托管代码”。 - 托管管道模式:经典模式或集成模式,需根据应用程序需求选择,现代应用通常为集成模式。
- 应用程序池身份:检查该账户是否有权限访问网站的物理文件夹。
物理路径与权限
IIS需要一个有权限读取网站文件的用户身份。
- 操作方法:在IIS管理器中选中您的网站,在右侧“操作”窗格点击“基本设置…”,查看“物理路径”是否正确指向网站文件的根目录。
- 权限检查:
- 在文件资源管理器中,右键点击网站的物理文件夹,选择“属性”。
- 切换到“安全”选项卡。
- 点击“编辑”,添加”,输入
IIS_IUSRS
,点击“检查名称”并确定。 - 给予
IIS_IUSRS
用户组“读取和执行”、“列出文件夹内容”、“读取”这至少三项权限,如果网站需要上传文件,可能还需要“写入”权限。
日志分析与高级技巧
如果以上步骤都无法解决问题,日志是最后的希望。
- HTTP日志:IIS会记录所有HTTP请求,在IIS管理器中,选择您的网站,在右侧“操作”窗格点击“日志…”,可以查看日志文件存放路径,打开最新的日志文件,查看访问您的域名时的请求记录,状态码(如
404
,403
,500
)能提供直接的错误线索。 - 失败请求跟踪:这是一个强大的调试工具,可以捕获特定请求的详细事件信息,您可以为网站启用此功能,并添加规则来跟踪状态码为
404
或500
的请求,从而获得极其详细的失败原因。
相关问答FAQs
问题1:为什么我在服务器上可以用 localhost
访问,但用域名却无法访问?
解答:这是一个非常典型的现象,它强烈地暗示问题出在IIS的“绑定”配置或服务器的“防火墙/安全组”上,请检查IIS网站的绑定设置,确保已经为您的域名(主机名)添加了正确的绑定规则,并且端口(通常是80)是正确的,请务必检查Windows防火墙和云服务商的安全组,确保它们允许来自外部网络的流量访问您在绑定中设置的端口,本地访问(localhost
)绕过了防火墙和DNS解析,所以能成功,而外部域名访问则必须经过这两道关卡。
问题2:访问域名时出现 “403.14 – Forbidden” 错误,这是什么原因?
解答:HTTP 403.14 错误的具体含义是“Web 服务器被配置为不列出此目录的内容”,这通常发生在以下两种情况:
- 未设置默认文档:您访问的是一个目录(如网站的根目录
www.yourdomain.com/
),但IIS没有在该目录中找到配置好的默认文档(如index.html
,default.aspx
,iisstart.htm
等),解决方法是在IIS管理器中,选中您的网站,双击“默认文档”功能,确保列表中包含了您网站的首页文件名,并且该文件确实存在于物理路径中。 - 目录浏览被禁用:这是推荐的安全设置,如果您确实想让用户看到目录下的文件列表(不推荐),可以在IIS管理器中双击“目录浏览”功能,然后点击右侧的“启用”,但通常情况下,正确的做法是检查并配置默认文档。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复