Win Server 2016环境下IIS+ARR+NLB集群第二节点访问报HTTP Error 503求助
解决ARR服务器场第二台服务器503错误的排查方案
1. 核查ARR服务器场配置有效性
- 确认第二台服务器在ARR场中的状态:打开IIS管理器→服务器场→目标场→服务器节点,查看状态是否为「可用」,若显示「不可用/降级」,说明ARR的健康探测已判定后端异常
- 检查健康探测规则:进入服务器场→健康探测,确认探测路径(如
/)在第二台服务器本地能返回200状态码,调整探测间隔/超时时间避免误判 - 验证路由规则:确保DefaultWebSite的URL重写规则正确指向目标服务器场,无针对第二台服务器的排除规则
2. 验证第二台服务器的IIS核心状态
- 确认DefaultAppPool运行状态:即使重启过,仍需检查IIS管理器→应用池里的状态是否为「正在运行」,若停止/暂停,排查应用池启动条件(.NET版本匹配、身份权限)
- 检查应用池进程模型:确认应用池标识(如ApplicationPoolIdentity)对DefaultWebSite物理路径有读取权限,权限不足会导致应用池无法启动
- 分析日志定位根因:
- IIS日志:查看
C:\inetpub\logs\LogFiles\W3SVC1下的条目,关注503的子状态码(如503.0=服务未启动,503.2=并发超限) - HTTPERR日志:查看
C:\Windows\System32\LogFiles\HTTPERR,排查应用池崩溃、端口占用等记录
- IIS日志:查看
3. 检查NLB集群配置一致性
- 确认两台服务器的NLB规则一致:端口规则(80/443是否开放)、负载均衡模式(轮询/加权轮询)、优先级设置,避免第二台被NLB排除
- 查看NLB节点状态:打开NLB管理器,确认第二台服务器状态为「已收敛」,若为「暂停/断开」需重新加入集群
- 验证心跳连通性:确保两台服务器之间允许NLB心跳数据包(UDP 1718-1719端口),无防火墙/路由阻断
4. 排查网络与防火墙限制
- 确认第二台服务器防火墙允许80/443端口的HTTP/HTTPS流量,以及ARR与后端的通信端口
- 测试跨服务器连通性:在第一台服务器执行
ping 第二台服务器IP、telnet 第二台服务器IP 80,验证网络和端口可用性 - 检查DNS解析:确认ARR服务器场中配置的第二台服务器IP/主机名解析正确,避免因解析失败导致的503
5. 其他兜底排查项
- 检查系统资源:第二台服务器的CPU、内存是否占用过高,导致应用池无法分配资源启动
- 重置ARR配置:若以上排查无结果,可导出当前ARR配置后重置,再重新导入配置文件,排除配置损坏问题
内容的提问来源于stack exchange,提问作者Panteleymon
相关产品推荐
相关产品推荐

