0

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

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

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

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

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

4

1 回答 1

0

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

但是您需要注意静态内容请求将如何进行身份验证。

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

希望这个对你有帮助。

于 2009-10-11T15:57:38.733 回答