Tomcat配置多个Service,多个同名的应用运行在一个tomcat下
网站项目中有时候会碰到,每个网站一个网站后台程序,偏偏因为某种原因,这后台程序的名称还是一样的,比如都叫 app.war,这样如果有2个或以上网站需要用各自的app.war,那么就需要安装多个tomcat,资源浪费比较大。也不好管理。有没有一种可能,将这几个app.war放到一个tomcat下运行呢? 答案是可以的。
修改%TOMCAT_HOME%/conf/server.xml
将Service元素复制一份,直接粘贴到原来那个Service元素之后,即 .....这一部分复制下来,放到第一个 之后,然后再继续修改刚刚添加的部分配置信息:
按照下列步骤修改第二个Service元素:
将Service元素的name属性改为Catalina2
将第一个Connector元素的port属性由8080改为其他未使用的端口,如8081
将第二个Connector元素的port属性由8009改为其他未使用的端口,如8010
将Engine元素的name属性由Catalina改为Catalina2,与Service的name属性保持一致
将Host元素的appBase属性由webapps改为webapps2
创建目录
%TOMCAT_HOME%/conf/Catalina2/localhost
%TOMCAT_HOME%/webapps2
将%TOMCAT_HOME%/webapps/ROOT复制到%TOMCAT_HOME%/webapps2
这样就有两个工程放置的目录,一个是webapp 一个是webapp2,这里面都可以放你的war工程,而且如果工程名字相同都没有问题。它们之间是没有干扰的。
启动Tomcat
访问tomcat主页 可以
http://localhost:8080/app
http://localhost:8081/app
当然你可以配置了多个 Service 元素。就需要修改Tomcat的内存参数,防止内存溢出。如果你是linux系统,修改 %TOMCAT_HOME%/bin/catalina.bat
-Xms //初始堆大小
-Xmx //最大堆大小
-XX:PermSize //初始永久区大小
-XX:MaxPermSize //最大永久区大小
放到有效配置的第一行
set JAVA_OPTS=-server -Xincgc -Xms1024m -Xmx1024m -XX:MaxPermSize=256m
如果你是windows系统,去修改注册表吧,
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\tomcat6.0\Parameters\Java
右边的 Options 里面一条配置占一行 前后不能有空格。
然后重启。