tomcat 实现多端口多域名访问
在我们部署项目到Tomcat
的时候,有时候会配置通过域名访问项目。接下来我们就来了解一下多域名多端口访问项目相关配置。
演示环境
Tomcat 8.5
进行配置
多端口访问
当一个项目需要使用多个端口号去访问的时候,只需要在Service
标签下进行这样简单的配置一下就好:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
这样就保证了当Tomcat
运行起来的时候,同时监听多个端口,通过8080
和8081
端口来访问项目。
多域名访问
配置项目的多域名的访问,最简单的方式就是在Host
标签下配置Alias
标签:
<Host name="www.jerome.xin" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>domain.jerome.xin</Alias>
<Alias>domain2.jerome.xin</Alias>
<Context docBase="/project" path=""/>
</Host>
如果是将Host
的内容复制一份,只修改name
属性也可以达到同样的效果。可以通过www.jerome.xin
、domain.jerome.xin
和domian2.jerome.xin
这些域名来访问项目。
多端口多域名访问
配置这个就是将Service
标签以及标签下的内容复制一下修改name
,然后配置不同Connector
,再配置不同的Host#name
属性,如下所示:
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="www.jerome.xin" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context docBase="/project1" path=""/>
</Host>
</Engine>
</Service>
<Service name="Catalina1">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="www.jeromezhu.xin" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context docBase="/project2" path=""/>
</Host>
</Engine>
</Service>
这样的配置就实现了,通过www.jerome.xin:8080
访问到project1
项目,通过www.jeromezhu.xin:8081
访问到project2
项目。
总结
通过上面的配置,我们已经完成了通过域名访问项目的各种方式。但是配置多域名的时候稍有不慎就会出现重复加载资源的问题。这个问题我在别的文章中进行说明。