【问题标题】:Using Tomcats(in an apache-tomcat cluster) as reverse-proxies to apache servers behind使用 Tomcats(在 apache-tomcat 集群中)作为后面的 apache 服务器的反向代理
【发布时间】:2009-10-10 07:08:44
【问题描述】:

我正在编写一个小型 Web 服务(如内容服务器)来搜索和提供内容。基本上它有 2 个部分 - 一个动态部分执行客户端身份验证并提供对内容的搜索功能。第二部分涉及向经过身份验证的客户端提供静态内容。

就性能和可扩展性而言,上述服务的良好架构是什么?

  1. 只是使用应用服务器(tomcat)来做这两个?
  2. 但后来我听说 apache 更擅长提供静态内容,具有易于配置的选项,例如压缩内容。那么如何使用 Tomcat 作为反向代理(使用 j2ep,noodle ..)到后面的 apache Web 服务器。 Tomcat 可以进行身份​​验证和搜索,而后面的 apache 服务器可以提供内容。
  3. 但 Tomcat 作为单点接触,可能会成为性能瓶颈。那么为什么不再次使用 apache tomcat 集群来平衡整个设置的负载呢?

基本上,我正在查看一个 apache-tomcat 集群,其中每个 tomcat 都充当后面一组 apache 服务器的反向代理。这个设置可以吗?有没有人这样做过?我确实对此进行了搜索,但找不到任何指针。如果可能,这种架构是否有任何潜在的缺点?

如果这是一个不好的选择,那么该网络服务的正确方法是什么?

【问题讨论】:

    标签: apache tomcat cluster-computing reverse-proxy j2ep


    【解决方案1】:

    首先,我将 tomcat 用于静态和非静态内容。 tomcat(来自版本 5 AFAIK)在静态内容服务方面也做得很好。 但是,如果这对您来说效果不佳,那么我建议您将 Apache httpd 作为前端服务器并在其后面使用 tomcat。 我使用了 mod_jk 并且 JKMount 指令可以告诉 apache 哪些调用要转发到 tomcat。因此,与 JKMount 指令不匹配的内容由 Apache httpd 自己处理。所以你的静态内容可以由 httpd 提供,非静态请求被定向到 tomcat。根据负载,您可以拥有多个 tomcat。

    但您需要注意静态内容请求的身份验证方式。

    为了能够扩展,在实际内容与其访问之间引入一定程度的间接性。就像可以从任何地方获得的内容的句柄。因此,您可以在地理上分布的许多位置复制您的静态内容(或使用 CDN)

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2019-11-27
      • 1970-01-01
      • 2015-11-23
      • 2015-07-30
      • 2018-08-23
      • 2013-05-22
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      相关资源
      最近更新 更多