我们使用IBM产品,我们通常使用IBM Http Servers(读取Apache)作为我们的应用程序服务器的反向代理。出于性能原因,我们从http服务器提供静态内容(.gif,.jpg,.css,.html等),以减轻应用程序服务器的负担。
到目前为止,我们必须将文件分发到http服务器并手动配置(最好编写自定义脚本。)问题在于保持所有内容同步所需的工作量,尤其是当您需要更新应用程序时。
任何Java EE产品是否都支持“开箱即用”?是否有办法让应用程序服务器自动执行此操作,例如在群集配置中,主节点负责将应用程序分发到其他节点并保持所有内容同步。
答案 0 :(得分:2)
到目前为止,我们必须将文件分发到http服务器并手动配置(最多编写自定义脚本。)
不确定我是否获得配置部分。通常很容易将静态内容与JSP和Servlet区分开来(一旦完成,它就不会改变那么多)。
问题在于保持所有内容同步所需的工作量,尤其是当您需要更新应用时。
自动化!使用Maven(或Ant,但这需要更多工作),很容易从Web项目创建单独的程序集来处理这个问题:Java EE节点的WAR,一个zip HTTP服务器的静态内容。
是否有任何Java EE产品支持“开箱即用”?
AFAIK,没有。令人惊讶的是,部署是Java EE的薄弱环节。但是,您可以使用Maven和/或ControlTier等工具达到相当高的自动化水平。
答案 1 :(得分: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>