tomcat 多端口 多容器 多域名 配置

先强调一个原则:

server下面可以有多个service,用于配置不同监听端口

service下面可以有多个Host,用于配置该端口下的不同域名

Host里可以包含多个Context,用于配置该端口该域名下的不同虚拟目录

 
 

生产环境可能遇到的要求

 

1.一个tomcat 上跑一个项目,需要开启多个监听端口,同时访问一个服务

<Connector port="8080" protocol="HTTP/1.1"     
               connectionTimeout="20000"
               redirectPort="8443" /> 

<Connector port="8081" protocol="HTTP/1.1"     
               connectionTimeout="20000"
               redirectPort="8443" />

这样就实现了 通过 8080 和 8081 两个端口 访问同一个项目

 

 

2. 一个tomcat 上跑两个项目,需要开启两个监听端口,分别访问两个服务

<Service name="catalina">  
   <Connector port="8080" protocol="HTTP/1.1"   
              connectionTimeout="20000"   
              redirectPort="9444" URIEncoding="UTF-8"/>  
   <Engine name="catalina" defaultHost="localhost">  
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
            resourceName="UserDatabase"/>  
     <Host name="localhost"  appBase="webapps"  
           unpackWARs="true" autoDeploy="true"  
           xmlValidation="false" xmlNamespaceAware="false">  
     </Host>  
   </Engine>  
 </Service>  
  
 <Service name="catalina2">  
   <Connector port="8091" protocol="HTTP/1.1"   
              connectionTimeout="20000"   
              redirectPort="9445" URIEncoding="UTF-8"/>  
   <Engine name="catalina2" defaultHost="localhost">  
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
            resourceName="UserDatabase"/>  
     <Host name="localhost"  appBase="webapps2"  
           unpackWARs="true" autoDeploy="true"  
           xmlValidation="false" xmlNamespaceAware="false">  
     </Host>  
   </Engine>  
 </Service>  

这样访问 8080端口就到 webapps里的项目,访问8091 就到webapps2里的项目

 

 

3. 启动两个tomcat 跑两个项目,需要开启两个监听端口,分别访问两个tomcat

第一个tomcat

<Server port="8005" shutdown="SHUTDOWN">

  <Connector port="8080" protocol="HTTP/1.1"

第二个tomcat

<Server port="8015" shutdown="SHUTDOWN">
  <Connector port="8090" protocol="HTTP/1.1"

第二个tomcat要修改两个端口地址;

一定要注意修改 shutdown的端口,否则第二个tomcat启动会报错

 

 

4.使用域名访问

首先将 域名  test.xxx.com  解析到 tomcat服务器的IP地址上 10.11.0.47

访问  10.11.0.47:8080     成功
访问  test.xxx.com:8080   成功

 


修改端口地址为80 

 <Connector port="80" protocol="HTTP/1.1"

访问  10.11.0.47     成功
访问  test.xxx.com   成功

 

 

把域名和项目绑定

 <Host name="test.xxx.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

这样通过域名可以访问我们在webapps里的项目了

访问  10.11.0.47/android/index.jsp       成功
访问  test.xxx.com/android/index.jsp     成功
访问  test.xxx.com/java/index.jsp          成功

 

 

多域名分别对应多个项目

<Service name="catalina">  
   <Connector port="8080" protocol="HTTP/1.1"   
              connectionTimeout="20000"   
              redirectPort="9444" URIEncoding="UTF-8"/>  
   <Engine name="catalina" defaultHost="localhost">  
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
            resourceName="UserDatabase"/>  
     <Host name="test.xxx.com"  appBase="webapps"  
           unpackWARs="true" autoDeploy="true"  
           xmlValidation="false" xmlNamespaceAware="false">  
     </Host>
     <Host name="test2.xxx.com"  appBase="webapps2"  
           unpackWARs="true" autoDeploy="true"  
           xmlValidation="false" xmlNamespaceAware="false">  
     </Host>  
   </Engine>  
 </Service> 
域名 test.xxx.com  访问的是webapps中的项目
域名 test2.xxx.com 访问的是webapps2中的项目

posted @ 2018-05-11 10:50  乌托邦眺望  阅读(246)  评论(0编辑  收藏  举报