【服务器】多个tomcat 共享一个应用程序目录

在实际的项目中,有时我们需要用到负载均衡配置,需要处理多个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文件

使用默认的 <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 -->


赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏