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中的项目