1

在负载下,我们的 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 相关。谢谢阅读。

4

1 回答 1

0

I strongly recommend that you ditch mod_jk in favour of mod_ajp_proxymod_proxy_ajp. It does exactly the same thing, but it is miles simpler to configure; it is built into Apache rather than being a by-product of the Tomcat project; it can be used in conjunction with mod_proxy_balancer when you get the need for it; and it has been working flawlessly for me, including SSL, for several months in production.

于 2012-07-15T01:16:10.377 回答