Apache 停止响应 SSL + mod_jk

Posted

技术标签:

【中文标题】Apache 停止响应 SSL + mod_jk【英文标题】:Apache stops responding to SSL + mod_jk 【发布时间】:2012-07-11 08:43:08 【问题描述】:

我们的 Apache2 实例在负载下偶尔会停止响应 SSL 请求。

我们有一个运行 Apache 2.2 w/OpenSSL 的 Windows Server 2003。它配置了 mod_jk 连接器版本 1.2.32,它平衡了 Tomcat 6 的两个实例。

Apache2 配置为接受 :80 上的请求并使用 mod_rewrite 重定向到 :443,效果很好。 (这在以后很重要)

我们有一个外部进程,它定期调用通过 mod_jk 映射的 URL。该进程配置不当,最初将其请求发送到 http (:80),然后被重定向到 https (:443),导致服务器受到双重打击。这意味着 access.log 将显示两个请求,一个具有 302 状态(从 :80 请求重定向),然后是 200 状态(来自 :443 请求)。

最终,access.log 不再显示后续的“status 200”消息,仅显示 302(重定向)。通过浏览器访问 https URL 也确认 Apache 没有响应。我们的 Monitis 警报说:“严重 - 无法建立 SSL 连接”。此外,我们的 mod_jk.log 在失败时停止记录请求。需要注意的是,Apache 在 ssl 请求失败的同时继续回复所有 http 请求并发送 302 重定向。

通过http直接访问两个tomcat实例都成功,没有任何问题。

我们重新启动了 Apache2 服务,该服务立即解决了问题,一切又开始正常运行。

这个谜题中有很多活动的部分,我不确定罪魁祸首。我怀疑 SSL 可能存在问题,尽管当时我没有通过 SSL 测试非 tomcat URL。它也可能与 mod_jk 相关。感谢阅读。

【问题讨论】:

【参考方案1】:

我强烈建议您放弃 mod_jk,转而使用 mod_ajp_proxymod_proxy_ajp。它做的事情完全相同,但配置起来要简单得多。它内置在 Apache 中,而不是 Tomcat 项目的副产品;当您需要它时,它可以与 mod_proxy_balancer 结合使用;在生产中几个月来,它对我来说一直完美无缺,包括 SSL。

【讨论】:

谷歌搜索显示我认为您的意思是 mod_proxy_ajp。我希望尽快尝试一下。谢谢! @KrisKoskelin 哎呀,是的,tks,修复了。 更新:mod_proxy_ajp 设置很简单。到目前为止,没有奇怪的连接问题。 交叉手指谢谢!

以上是关于Apache 停止响应 SSL + mod_jk的主要内容,如果未能解决你的问题,请参考以下文章

Apache配置反向代理负载均衡和集群(mod_proxy方式)

在 tomcat 和 apache http 服务器之间配置 SSL

centos6.5 apache+tomcat结合 负载均衡

Apache+Tomcat+mod_jk配置教程

Apache 2.4.29 和 mod_jk 1.2.42 不转发到 tomcat

Apache Tomcat: mod_jk 连接超时cping/cpong timeout