Tomcat 之一 - 虚拟主机配置
关于 Tomcat 安装部分,请参考:在 ubuntu 22.04 中,通过二进制安装 Tomcat 服务
注意:以下操作都是在 root 用户下执行。
创建 web 目录
1.在 /usr/local/tomcat/webapps
目录下创建 2 个虚拟主机目录,分别为 apache02
和 apache03
1 | mkdir -p /usr/local/tomcat/webapps/apache0{2,3} |
2.分别在 2 个目录中创建 index.jsp 文件,内容都为:
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" |
Tomcat 主配置文件
单域名配置多个虚拟主机
1.编辑 Tomcat 主配置文件 /usr/local/tomcat/conf/server.xml
,在最后一个 </Host>
标签 和 </Engine>
标签之间添加如下虚拟主机配置内容:
1 | ... |
以下是 <Host>
元素配置项的解释:
name
- 含义:虚拟主机的名称。
- 值:apache03.xxxxu.com
- 说明:该虚拟主机将响应来自 apache03.xxxxu.com 的请求。
appBase
- 含义:Web应用程序的根目录。
- 值:webapps
- 说明:所有 Web 应用程序都将部署在 /usr/local/tomcat/webapps/webapps 目录下。
unpackWARs
- 含义:是否自动解压 WAR 文件。
- 值:true
- 说明:Tomcat 将自动解压所有部署的 WAR 文件。
autoDeploy
- 含义:是否自动部署 Web 应用程序。
- 值:true
- 说明:当 Tomcat 检测到 webapps 目录下有新 WAR 文件时,将自动部署它们。
xmlValidation
- 含义:是否验证 XML 配置文件。
- 值:false
- 说明:Tomcat 将不验证 XML 配置文件的有效性。
xmlNamespaceAware
- 含义:是否启用 XML 命名空间。
- 值:false
- 说明:Tomcat 将不启用 XML 命名空间。
Context
- 含义:Web 应用程序的配置。
- 属性:
- docBase:Web 应用程序的文档根目录。
- path:Web 应用程序的上下文路径。
- reloadable:是否允许重新加载 Web 应用程序。
示例
1 | <Host name='apache03.xxxxu.com' appBase='webapps' unpackWARs='true' autoDeploy='true' xmlValidation='false' xmlNamespaceAware='fase'> |
解释
该配置定义了一个名为 apache03.xxxxu.com
的虚拟主机,该虚拟主机将响应来自 apache03.xxxxu.com
的请求。所有 Web 应用程序都将部署在 /usr/local/tomcat/webapps/webapps
目录下,Tomcat 将自动解压所有部署的 WAR 文件并自动部署它们。Tomcat 将不验证 XML 配置文件的有效性,也不启用 XML 命名空间。
该虚拟主机只有一个 Web 应用程序,其文档根目录为 /usr/local/tomcat/webapps/apache03
,上下文路径为空,允许重新加载。
多域名配置单个虚拟主机
如果要将域名多个域名(比如: ‘apache02.xxxxu.com’ 和 ‘apache03.xxxxu.com’) 配置在同一个虚拟主机里面,则需要使用 <Alias> ... </Alias>
标签对引入,一行一个域名,如下:
1 | ... |
2.重启 tomcat 服务:
1 | systemctl restart tomcat.service |
访问测试
打开浏览器,分别输入 apache02.xxxxu.com:8080
和 apache03.xxxxu.com:8080
访问如下:
访问 apache02.xxxxu.com:8080
如图:
访问 apache03.xxxxu.com:8080
如图: