已接入CDN的网站迁移至Windows实例后访问该站点提示连接被拒绝
问题描述
已接入CDN的网站迁移到另外一台Windows实例之后,该服务器上的所有站点均无法正常访问,访问时提示连接被拒绝。经过检查,发现了下列几点特征:
- 该服务器中的443端口正常开启,并且该服务器的负载和带宽没有明显变化。
- 该服务器使用宝塔(BT)面板搭建网站。
说明:BT面板默认采用Apache提供Web服务。
- Apache的error_log中存在下列错误信息。
Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
问题原因
通过Apache的error_log可以判断,该服务器没有线程来处理请求。详情请参见更多信息。
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
请参考下列步骤进行排查。
- 登录该服务器。
- 检查Apache
conf/httpd.conf
配置文件中的ThreadsPerChild
参数值是否为64
。说明:Windows系统中Apache的
ThreadsPerChild
参数默认值为64。 - 如果
ThreadsPerChild
参数值为64
,请参考下列内容,修改该参数值为512。<IfModule mpm_winnt_module>
ThreadsPerChild 512
MaxRequestsPerChild 0
</IfModule>注意:此处的512并非推荐值,请根据服务器的负载和访问情况进行调整。更多有关该参数的信息,请参见Apache MPM通用指令。
- 保存并重启Apache服务。
- 检查网站是否可以正常访问。
更多信息
Windows系统中Apache程序使用mpm_winnt
模块,该模块默认的线程数为64。当Web请求数超过该线程数时,Apache将无法正常提供服务。详细内容请参见Apache MPM模块。
适用于
- 云服务器ECS
- 轻量应用服务器