我在服务器上使用 Apache + mod_jk + tomcat,当我收到许多请求时,尤其是 404 响应(显然是扫描),我看到许多 httpd 进程启动了。当我关闭 Tomcat 时,这些 apache 进程也关闭了。似乎它们正在等待 tomcat 释放它们或类似的东西。
该服务器是一个测试服务器,它在 VDS 上运行,并且我对进程数量有所限制。
那么有谁知道如何修复 apache 进程的数量并且不允许启动新进程或者只是让 tomcat 释放它们?
答案1
看一下这个 Apache 文档: http://httpd.apache.org/docs/2.0/mod/mpm_common.html#maxclients 通过它您可以调节您的最大进程数。
当您的 tomcat/app 正常工作时,tomcat 会释放连接。确保您的 webapp 没有通过向后端或其他东西发送过长的请求来阻塞连接。
基督教
答案2
显然您正在使用 prefork apache 模型,同时:
http://tomcat.apache.org/connectors-doc/reference/workers.html
在 Apache 2.x prefork 或 Apache 1.3.x 上,不要使用值大于 1 的 connection_pool_size!
与 JkOptions +DisableReuse 配合使用
+DisableReuse 将禁用池并修复您的问题。
它应该修复 tomcat 端的 SYN_RECV 或 RECV 问题。