针对Windows Server 2008的Apache调优build议

我们已经在Windows Server 2008 R2上实现了Apache 2.4 64位,作为反向代理来利用我们域的通配证书。 即使轻负载,我们也感到失望,所以我可能错误地configuration了一些东西。 由代理服务器(Glassfish 3.0.1)服务的网站变得越来越慢,无法响应。 重新启动Apache暂时修复了这个问题,但是很快就没有反应。 通过直接转到Glassfish服务器的IP地址来绕过代理,我们可以看到GF不是问题。 我们唯一要做的就是在Apache上使用SSL前端的反向代理,并将内部networking上的stream量通过http传递给Glassfish服务器。

当网站没有响应时,看一下Windows Server进程表示很less的活动。 CPU可能运行在10%(单个CPU)。 有less于30个TCP连接。 内存利用率不及GB(这是一个4GB的机器)。 networkingstream量几乎没有打破100kbps的门槛。 所有迹象表明,服务器几乎没有汗streamyet背,但该网站没有反应。

我已经设置了以下属性:

SSLSessionCache "shmcb:C:/Apache_direct/logs/ssl_scache(1024000)" SSLSessionCacheTimeout 300 ThreadsPerChild 3000 MaxRequestsPerChild 0 KeepAlive On KeepAliveTimeout 15 ProxyRequests Off SSLStrictSNIVHostCheck off ProxyBadHeader Ignore 

我有每个服务器的每个http和https端口的虚拟主机设置。 VHost设置类似于:

 <VirtualHost *:443> ServerName test.domain.org # ProxyPreserveHost On SSLEngine on ProxyPass / http://192.168.80.196:8080/ ProxyPassReverse / https://192.168.80.196:8080/ </VirtualHost> 

我错过了一个重要的设置或错误configuration了一个设置? 根据我读到的,Apache应该能够轻松处理我们拥有的stream量,如下所示:

 800 visits an hour. 13k visits daily. 100 uploads an hour of roughly 60mb MP3 files. 400 downloads an hour of those same MP3 files. 800 downloads of small (100k) pdf files. 

Glassfish正在提供所有的file upload/下载,我们允许这些会话持续一个小时。 由于大多数文件是独一无二的,我们对于应该使用哪些caching设置(如果有的话)有点不确定。 也许我应该省略SSLcaching设置?

在networking上进行的Apache性能调优有很多很多,但很less涉及到反向代理,SSL,并根据stream量types/stream量提供build议。 一些build议将是非常有帮助的。

我将回答我自己的查询,以便如果有人遇到这个问题,他们至less会看到某种答案…。

我从来没有确认这个特定的configuration是正确的,不正确的或可以改进的。 我知道,我们决定再次与它一起进行下面的修改(我的猜测):

 Threadlimit 3000 ThreadsPerChild 3000 MaxRequestsPerChild 0 KeepAlive On KeepAliveTimeout 15 AcceptFilter https none AcceptFilter http none EnableSendfile Off EnableMMAP off ProxyRequests Off SSLStrictSNIVHostCheck off ProxyBadHeader Ignore HostnameLookups off ExtendedStatus off 

我们没有遇到这个configuration的性能问题,所以我们正在运行它的生产。 主要的问题是如何在反向代理环境中取得良好的性能。