使用Apache前置应用程序服务器的高效设置

我必须在各种应用程序服务器(一开始,这将是JBoss 6,Tomcat 8独立和Tomcat 8embedded到Spring引导1.2应用程序)与Apache 2.4。 因此,我决定去mod_proxy(而不是jk,ajp或类似的东西)。 从我所知道的我设置Apache和应用程序服务器重用/池连接。 但是当我计算开放端口的数量时,我看到了几千个:

$ netstat | grep :80 | wc -l 4630 

(我在Windows上,上面的命令在Cygwin中运行,所以不要混淆,Apache等运行本地,这意味着没有cygwin模拟层)我可能已经预计可能有一千个端口,但不是更多。

这是我的Apache反向代理configuration:

 <VirtualHost *:80> ServerAdmin ... ProxyRequests Off ProxyPreserveHost On ProxyPass / http://localhost:8080/ connectiontimeout=5 timeout=30 ProxyPassReverse / http://localhost:8080/ ServerName ... ErrorLog "logs/foo.log" CustomLog "logs/foo-access.log" common </VirtualHost> 

MPM是活跃的,我可以使用多达150个传入连接,至less这是我从判断服务器状态来判断…

 ... 1 requests currently being processed, 149 idle workers ... 

..和Apache的configuration:

 <IfModule mpm_winnt_module> ThreadsPerChild 150 MaxConnectionsPerChild 0 </IfModule> 

这种configuration使得Spring Bootembedded式Tomcat能够访问多达500个连接:

 server.tomcat.access-log-pattern=%h %l %u %t %I "%r" %s %b %D server.tomcat.access-log-enabled=true server.tomcat.max-threads=500 server.tomcat.basedir=./tomcat 

那么为什么有这么多的港口? 我用JMeter从另一台PC上运行了一个负载testing,当我手动计算的时候,我会预期这些数字:jmeter-> Apache:端口80上的150个连接Apache-> Tomcat:端口8080上的150个连接(不能超过500个)Tomcat < Apache:端口8080上的150个连接(不能超过500个)

我的设置中是否有错误导致端口不能被重新使用?