您的位置:首页 > 运维架构 > Tomcat

多个tomcat 共享一个应用程序目录

2015-06-02 15:32 281 查看
在实际的项目中,有时我们需要用到负载均衡配置,需要处理多个tomcat,但是如果每个tomcat中都使用同样代码的应用程序,会显得很臃肿,我们可以将这个应用程序给单独的提出来作为每一个tomcat服务器共享一个使用。

第一种方式,把应用放到一个公共目录,修改server.xml中配置

<!-- 虚拟主机localhost appBase : 指 定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果没有此项,默认 为<CATALINA_HOME>/webapps. 它将匹配请求和自己的Context的路径,并把请求转交给对应的Context来处 理 !-->



name 表示机器ip地址,默认本机是localhost,appBase是应用程序目录,可以指定一个绝对位置

如果在负载均衡处理中使用多个tomcat需要修改各个tomcat的server,内容同上。

然后把你的应用程序放在指定的webapps目录下,当然你也可以将tomcat中默认的webapps应用程序一起拷贝过来,示例如下





启动两个tomcat的日志记录如下



这种方式还有另外一种配置方法,如下图配置



但是以上配置中,有网友说不建议使用此类配置,最好不要修改server.,xml文件

第二种方式:不修改Server.xml文件

使用默认的 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">配置
在apache-tomcat-8.0.20\conf\Catalina 下新建localhost目录,并新建一个xml文件,譬如你的应用程序为http:localhost:8080/DemoWeb,那么你的xml文件为DemoWeb.xml
文件内容为以下配置,在docBase中最好使用绝对位置,在linux中使用 / 斜线,与Windows不同,然后将这个xml文件拷贝到apache-tomcat-7.0.52的相同目录结构下



<?xml version="1.0" encoding="UTF-8"?> 
<Context docBase="D:\workSpaces\Server\ApacheTomcatLoadBalance\webapps\DemoWeb" reloadable="true">
</Context>
启动日志如下



Java开发中的reloadable设置

为了在开发时,让tomcat能够自动重新加载,我们修改过的代码和配置,需要对Tomcat的context.xml文件进行设置。

在<context>标签中,加上reloadable属性,并且将值设为true
<Context reloadable="true">  
    <!--注意: reloadable设为true,目的是为了方便开发阶段, 它会影响tomcat性能;当在正式部署服务时,需要改成false -->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: