206
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
已接入CDN的网站迁移至Windows实例后,访问该站点提示连接被拒绝,如何处理?


已接入CDN的网站迁移至Windows实例后,访问该站点提示连接被拒绝,如何处理?

本文介绍已接入CDN的网站迁移至Windows实例后,访问该站点提示连接被拒绝问题的问题描述、问题原因和解决方案。

问题描述

已接入CDN的网站迁移至Windows实例之后,该Windows实例上的所有站点均无法正常访问,访问时提示连接被拒绝。

经过排查,发现该场景存在如下特征:

  • 该Windows实例的443端口正常开启,并且该Windows实例的负载和带宽无明显变化。

  • 该Windows实例使用宝塔(BT)面板搭建网站。

    说明

    宝塔(BT)面板默认采用Apache提供Web服务。

  • Apache的error_log中存在如下错误信息。

    Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
    问题描述 xin

问题原因

通过Apache的error_log信息可以判断,该Windows实例上没有线程来处理访问请求,导致该问题。

说明

Windows操作系统中Apache程序使用mpm_winnt模块,该模块默认的线程数为64。当Web请求数超过该线程数时,Apache将无法正常提供服务。更多信息,请参见Apache MPM模块。

解决方案

说明

本文操作步骤以Windows Server 2012 R2数据中心版64位中文版为例,实际操作以您实际的操作系统为准。

  1. 远程连接Windows实例。

    具体操作,请参见连接方式概述。

  2. 启用MPM模块配置文件。

    重要

    在默认情况下,MPM模块配置文件并没有启用,您需要执行如下操作进行启用。

    1. 打开资源管理器,找到httpd-mpm.conf配置文件并记录存放位置。

      在您的Apace安装目录\conf\extra目录中,可以找到主要用于MPM模块的httpd-mpm.conf配置文件。以该文件存放于C:\Program Files\BtSoft\apache\conf\extra路径为例,示例如下。extra目录 xin

    2. httpd.conf主配置文件中,执行如下操作,启用Include conf/extra/httpd-mpm.conf配置。

      说明

      httpd.conf主配置文件存放于Apace安装目录\conf目录中,本操作以httpd.conf主配置文件存放于C:\Program Files\BtSoft\apache\conf路径为例。

      1. 找到待修改的代码,内容如下。

        # Server-pool management (MPM specific)
        # Include conf/extra/httpd-mpm.conf
      2. 删除# Include conf/extra/httpd-mpm.conf代码中的#来启用Include conf/extra/httpd-mpm.conf配置,修改后的代码如下。

        # Server-pool management (MPM specific)Include conf/extra/httpd-mpm.conf
        修改MPM配置文件 xin
    3. conf/extra/httpd-mpm.conf配置文件中,查看ThreadsPerChild参数值是否为64

      说明

      Windows操作系统中Apache的ThreadsPerChild参数默认值为64

      如果ThreadsPerChild参数值为64,则您需要修改如下代码,将ThreadsPerChild参数值修改为512,然后保存配置。

      重要

      512仅为示例值,并非推荐值。您需要根据Windows实例的负载和访问情况进行调整。更多该参数的信息,请参见Apache MPM通用指令。

      <IfModule mpm_winnt_module>ThreadsPerChild 512 MaxRequestsPerChild 0</IfModule>
      修改ThreadsPerChild参数 xin
  3. 重新启动Apache服务。

    1. 在桌面左下角,选择开始图标 > 服务器管理器

    2. 服务器管理器页面的左侧导航栏中,单击本地服务器

    3. 服务区域中找到Apache,单击鼠标右键,然后单击重新启动服务Apache 重启服务

  4. 重新访问该网站。

    如果成功访问该网站,则问题解决。


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!