apache_mod_proxy 和 tomcat7 套接字超时

apache_mod_proxy 和 tomcat7 套接字超时


我已在同一个 CentOS 6 服务器上将 Apache tomcat7 配置为后端,将 apache2.2 配置为前端,以下是我的部分配置 Server.xml

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" connectionTimeout="600000" maxKeepAliveRequests="100" URIEncoding="UTF-8"/>

& 在httpd.conf

ProxyRequests Off
Timeout 600
ProxyTimeout 600
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/

问题是,我的 tomcat 服务器上的一些 servlet 需要大约 3 分钟才能完成,但一分钟后,打开的服务器套接字(无论我使用什么客户端,无论是浏览器还是任何其他客户端应用程序)都会被服务器意外关闭(无论如何,servlet 执行会一直持续到最后,即使套接字已关闭)。
我更改了的sysctl.conf值,我确信这不是操作系统超时问题,因为当我访问另一个不使用 mod_proxy 的耗时脚本时(例如,在同一 apache 服务器上执行时间为 3 分钟的 PHP 脚本),它在所有客户端上都能正常工作。 任何建议都将不胜感激net.ipv4.tcp_fin_timeout600

答案1

尝试在代理指令中设置连接超时,如下所示

ProxyPass / ajp://localhost:8009/ connectiontimeout=600 timeout=600
ProxyPassReverse / ajp://localhost:8009/ 

我将这些设置用于我的应用程序,并且运行良好

相关内容