2

我们使用 IBM 产品,我们通常使用 IBM Http Servers(阅读 Apache)作为我们应用服务器的反向代理。出于性能原因,我们从 http 服务器提供静态内容(.gif、.jpg、.css、.html 等),以减轻应用服务器的负担。

到目前为止,我们必须将文件分发到 http 服务器并手动配置它(最好是编写自定义脚本。)问题是保持一切同步所需的努力,尤其是当您需要更新应用程序时。

是否有任何 Java EE 产品支持这种“开箱即用”?有没有办法让应用程序服务器自动执行此操作,例如在集群配置中,主节点负责将应用程序分发到其他节点并保持一切同步。

4

2 回答 2

2

到目前为止,我们必须将文件分发到 http 服务器并手动配置它(最好是编写自定义脚本。)

不确定我是否得到配置部分。将静态内容与 JSP 和 Servlet 区分开来通常很容易(一旦完成,就不会发生太大变化)。

问题在于保持一切同步所需的努力,尤其是当您需要更新应用程序时。

自动化!使用Maven(或Ant,但这需要更多工作),很容易从 Web 项目中创建单独的程序集来处理这个问题:Java EE 节点的 WAR,HTTP 服务器的静态内容 zip。

是否有任何 Java EE 产品支持这种“开箱即用”?

AFAIK,不。令人惊讶的是,部署是 Java EE 的薄弱环节。但是您可以使用 Maven 和/或ControlTier等工具达到相当高的自动化水平。

于 2009-11-26T15:09:31.830 回答
0

我不熟悉 IBM 产品,但一种常见的做法是将应用程序(主要是 WAR)部署为目录而不是 war 文件,这样您就可以访问这些文件本身。然后,您将部署目录映射到 apache 中的别名,以便它可以从那里提供静态内容。请注意,您需要阻止对 WEB-INF 目录的所有访问,并将所有对 jsp 文件(.jsp、.jsf、.do、.action 等)的请求路由到应用程序服务器。

使用以下指令阻止 WEB-INF:

<DirectoryMatch "(WEB-INF|META-INF)">  
  Order allow,deny 
  Deny from all 
  AllowOverride None 
</DirectoryMatch>
于 2009-09-04T06:36:24.650 回答