tomcat 多域名虚拟主机的一种最简化设置建议

一、需求

  • 需要在同一台服务器上,用 tomcat 部署两个应用系统,都是基于 java 编写的。
  • 希望让用户使用不同的域名访问应用,且都用80端口,避免用户输入端口号。
  • 环境: win2008 x64,tomcat8

二、可行做法

从互联网资料上,可以找到以下几种做法:

  1. 安装两个 tomcat ,分别设置不同启动端口,跑两个应用,然后用反向代理服务器(比如 nginx 或者 apache )实现不同域名解析到不同 tomcat 上;
  2. 在同一个 tomcat 下,修改 server.xml,设置两个 service 标签,用不同的监听端口区别开不同应用,然后在 host 内用不同域名与 appBase 区别开,然后用反向代理服务器实现80端口的复用;
  3. 在同一个 service 标签内,同一端口下,用多个 host 标签,同时实现多个虚拟主机。

三、实际操作

考虑到项目的访问量比较小,没必要用到反向代理,我们计划采用最为简单的设置模式(即前述方法3),共两步骤。

1. 建立合理目录结构

在 tomcat 的 webapps 目录下,建立如下目录结构:

 webapps 
  ├── app1
  │    └──ROOT
  │        ├──index.jsp
  │        └──...   
  │── app2
  │    └──ROOT
  │        ├──index.jsp
  │        └──...
  ...

应用程序的所有内容,都放在相应的 ROOT 目录底下。

2. 修改 server.xml

在 tomcat 的 server.xml 文件中,修改 host 标签,用 name 与 appBase 结合,实现“不同域名访问位于同一 tomcat 服务器下的不同应用”的需求,内容如下:

<Host name="app1.domain.com" appBase="webapps/app1" unpackWARs="true" autoDeploy="true">
...
</Host>
<Host name="app2.domain.com" appBase="webapps/app2" unpackWARs="true" autoDeploy="true">
...
</Host>

Host 标签中间,并不需要使用 context 标签,也不用设置 webBase 属性。

这样部署之后,整个服务器的文件放置规范,配置简单,需要新增应用的时候,也非常便捷。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值