Apache 停止响应 http 请求--https 继续工作

Apache 停止响应 http 请求--https 继续工作

好的。我遇到了一个非常奇怪的问题。我最近刚刚从 2.2.17 更新到 Apache 2.4.2,主要是为了尝试让基于名称的 SSL VirtualHosts 工作(尽管它们应该在 2.2.17 上工作)。服务器是 Win2008 R2(根据定义是 x64),运行 PHP 5.4.3 和 MySQL 5.1.40(我知道已经过时了)。

当我启动服务器时,它最初运行良好。响应所有请求,VirtualHosts 都按顺序运行。但是,经过一段不确定的时间(大部分时间似乎只需要几分钟,但有时需要几个小时),它停止响应常规 HTTP 请求(在任何 VirtualHost 上)。HTTPS 继续工作。日志中没有错误,当我尝试连接时,访问日志中没有任何内容。

由于此错误的间歇性,我很难找到其根源。删除所有基于 SSL 的 VirtualHosts 后,稳定性似乎有所提高(12 小时后仍可响应 HTTP 请求)。不过,这可能只是巧合。

SSL VirtualHost 的全部内容如下,以防出现问题。

<VirtualHost *:443>
   DocumentRoot "C:\Server\www\virtualhosts\mysite.net"
   ErrorLog logs/ssl.mysite.net-error_log
   CustomLog logs/ssl.mysite.net-access_log common env=!dontlog
   SSLEngine on
   SSLProtocol all -SSLv2
   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
   SSLCertificateFile C:/Server/bin/apache/apache2.4.2/conf/ssl/server.crt
   SSLCertificateKeyFile C:/Server/bin/apache/apache2.4.2/conf/ssl/server.key
   SSLCertificateChainFile C:/Server/bin/apache/Apache2.4.2/conf/ssl/sub.class1.server.ca.pem
   SSLCACertificateFile C:/Server/bin/apache/Apache2.4.2/conf/ssl/ca.pem
</VirtualHost>

知道我遗漏了什么吗?

答案1

我们已经解决了我们服务器上的一个非常相似的问题。请参阅Apache 随机停止提供 HTTPS 服务,但 HTTP 运行正常

httpd.conf 文件中的这个设置解决了该问题:

AcceptFilter http none
AcceptFilter https none

答案2

打开Log调试,查看错误日志。

http://httpd.apache.org/docs/2.4/mod/core.html#loglevel

如果请求没有得到满足,那么一定存在某些问题,至少是存在某些段错误通知。

此外,您还可以使用“ab”实用程序在处理特定类型的请求后重新生成错误

http://httpd.apache.org/docs/2.4/programs/ab.html

作为最后的手段,您可以从命令行启动 httpd,并使用 apache2 二进制文件的某些开关强制调试模式/前台。不可能没有任何内容进入日志。您在其上提供哪种应用程序,是 fastcgi 还是某些 .net 桥?

另外,您说的“停止响应常规 HTTP 请求”到底是什么意思?浏览器中是否出现 503 错误,或者什么都没有出现/连接失败?

相关内容