Apache 反向代理 Java 应用程序服务器 CLOSE_WAIT 连接

Rya*_*yan 9 glassfish mod-proxy apache-2.2

我已经将 Apache 设置为 Java 应用程序服务器 (GlassFish) 的反向代理,我注意到即使在空闲的开发系统上也有大约 100 个连接处于 CLOSE_WAIT 状态:

sudo netstat -n -e -p -a -t | grep httpd | grep CLOSE_WAIT | wc -l
Run Code Online (Sandbox Code Playgroud)

我正在使用以下 HTTP 代理设置:

ProxyPass /myapp http://localhost:8080/myapp ttl=20 max=1 smax=0
ProxyPassReverse /myapp http://localhost:8080/myapp
Run Code Online (Sandbox Code Playgroud)

为什么所有这些联系都存在?我已经设置了“ttl=20 max=1 smax=0”,所以我认为所有连接都会在空闲系统上被清理。应用程序服务器是否没有尽其所能清理连接?

anu*_*nup 0

我遇到了类似的问题,我正在寻找有关 Apache 的推理。我怀疑 Apache 的 prefork。

至于解决方案,我使用 Nginx 解决了 CLOSE_WAIT 问题。然而,TIME_WAIT 的数量(大约 20,000)表明 Java 应用程序处理连接的方式有问题。有了Nginx,服务器和应用程序的性能就会好得多。

我希望有人能够通过技术深度来改进这个答案。