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

一台电脑同时运行多个tomcat配置方法

2017-07-21 09:22 375 查看
同一台机器上部署多个tomcat会发现第二个tomcat启动会报错。而有些同学会想到可能是端口重复,然而,在server.xml改了端口还是发现不行。其实要想实现同一台机器部署多个tomcat,需要修改配置的地方不止一个!  
第一个地方:
找到bin/startup.bat文件,这是tomcat的启动文件。截图如下:



在文件第一行添加如下两行:
SET JAVA_HOME=C:\software\jdk1.6.0_33 (JDK所在路径)
SET CATALINA_HOME=C:\test\tomcat2(第二个tomcat解压的路径)
例子截图如下:



 
第二个地方:
找到server.xml文件,修改以下3个地方。截图如下:



1、<Server port="8085" shutdown="SHUTDOWN">
截图如下:



2、<Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

截图如下:



3、<Connector port="8089" protocol="AJP/1.3" redirectPort="18443" />
截图如下:



 
修改以上2个地方后再启动第二个服务即可。

--************************************************************************

同一端口号的多个项目部署
    添加:

[html] view plain copy <Context path="/route" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrass"/>  
<Context path="/route2" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrasweats"/>  
通过访问:http://127.0.0.1:8080/route  http://127.0.0.1:8080/route2 对应各子的项目

对应不同端口号的多个项目部署
通过访问:http://127.0.0.1:8080/route  http://127.0.0.1:8081/route 对应各子的项目        
        打开conf文件夹server.xml文件,添加
[html] view plain copy <Context path="/route" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrass"/>  

        在service标签下面写一个service标签。复制上面service,再修改里面的端口号为8081。添加:
[html] view plain copy <Context path="/route" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrasweats"/>  

[html] view plain copy <?xml version='1.0' encoding='utf-8'?>  
  
<Server port="8054" shutdown="SHUTDOWN">  
    <!-- Security listener. Documentation at /docs/config/listeners.html <Listener   
        className="org.apache.catalina.security.SecurityListener" /> -->  
    <!--APR library loader. Documentation at /docs/apr.html -->  
    <Listener className="org.apache.catalina.core.AprLifecycleListener"  
        SSLEngine="on" />  
    <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->  
    <Listener className="org.apache.catalina.core.JasperListener" />  
    <!-- Prevent memory leaks due to use of particular java/javax APIs -->  
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />  
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />  
    <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />  
  
  
    <GlobalNamingResources>  
  
        <Resource name="UserDatabase" auth="Container"  
            type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved"  
            factory="org.apache.catalina.users.MemoryUserDatabaseFactory"  
            pathname="conf/tomcat-users.xml" />  
    </GlobalNamingResources>  
  
  
    <Service name="Catalina">  
  
        <!--protocol 请使用nio2,或者apr -->  
  
        <Connector port="8080" protocol="HTTP/1.1"  
            connectionTimeout="20000" redirectPort="9543" />  
  
  
        <Connector port="8909" protocol="AJP/1.3" redirectPort="9543" />  
  
        <Engine name="Catalina" defaultHost="localhost">  
  
            <Realm className="org.apache.catalina.realm.LockOutRealm">  
  
                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
                    resourceName="UserDatabase" />  
            </Realm>  
  
            <Host name="localhost" appBase="webapps" unpackWARs="true"  
                autoDeploy="true">  
  
                <Valve className="org.apache.catalina.valves.AccessLogValve"  
                    directory="logs" prefix="localhost_access_log." suffix=".txt"  
                    pattern="%h %l %u %t "%r" %s %b"/>  
                <Context path="/route" reloadable="true"  
                    docBase="/home/develop/tomcat-7.0.54/flatrass" />  
            </Host>  
        </Engine>  
    </Service>  
  
    <Service name="Catalina">  
        <!--把port改成8081 -->  
        <!--protocol 请使用nio2,或者apr -->  
        <Connector port="8081" protocol="HTTP/1.1"  
            connectionTimeout="20000" redirectPort="9543" />  
        <Connector port="8909" protocol="AJP/1.3" redirectPort="9543" />  
        <Engine name="Catalina" defaultHost="localhost">  
            <Realm className="org.apache.catalina.realm.LockOutRealm">  
                <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
                    resourceName="UserDatabase" />  
            </Realm>  
            <Host name="localhost" appBase="webapps" unpackWARs="true"  
                autoDeploy="true">  
                <Valve className="org.apache.catalina.valves.AccessLogValve"  
                    directory="logs" prefix="localhost_access_log." suffix=".txt"  
                    pattern="%h %l %u %t "%r" %s %b"/>  
                <Context path="/route" reloadable="true"  
                    docBase="/home/develop/tomcat-7.0.54/flatrasweats" />  
            </Host>  
        </Engine>  
    </Service>  
</Server>  

Java home set :

setclasspath.sh

export JAVA_HOME=/home/qatest/jdk1.8.0_91export JRE_HOME=/home/qatest/jdk1.8.0_91/jre

web.xml的加载过程是:

context-param -> listener -> filter -> servlet
其它:
service httpd status service httpd restart lsof -i:80 chmod +x catalina.sh ps –ef|grep tomcat rm –rf file
启动tomcat #   ./startup.sh
关闭tomcat #   ./shutdown.sh
查看是否启动成功可以输入ps axuwf|grep Java,
如果出现一大堆结果,就是启动成功了.也可以netstat -lnpt,查看8088端口有没有被使用.如果被使用了,说明启动成功了.
 更多面试题请狠狠的点击 下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: