Tomcat实现多域名访问各自的网站项目

##背景

手上有三台云服务器,但是网站太多,80端口都已经被占用完。新网站上线已经没有多余的服务器可以用,所以需要在同一个服务器上配置多个网站。一种较为常见和普适的做法是用nginx做反向代理,监听服务器80端口以接受客户端请求,不同域名的请求被映射到tomcat的不同端口,这样可以在一个服务器上部署多个(或一个)tomcat,不同的项目占用不同的端口。这种是比较普适的做法,不仅适用于tomcat,对于apache等都是可行的。

Tomcat自身支持多个域名访问各自的目录,所以这里采用的方案是所有的项目均部署在同一个tomcat的webapps目录下,tomcat只需监听80端口,不同域名的请求会被映射到不同的项目目录,这样一个tomcat就可以同时支持多个网站,而且全部是利用80端口。

##配置

首先将各个项目的war包放入tomcat的webapps目录下,假设为WEBA.war和WEBB.war

修改tomcat的conf目录下server.xml文件即可。

找到文件中Service部分,原文件为:(已删除注释部分)

<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 &quot;%r&quot; %s %b" />

</Host>
</Engine>

改为:

<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>

<Host name="weba.domain.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="WEBA"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

<Host name="webb.domian.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="WEBB"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
</Engine>

注意更换红色部分的内容!

至此,一个Tomcat的80端口就可以支持多个域名访问各自的网站了。

转载于:https://my.oschina.net/franciszhang/blog/909223

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值