web server apache tomcat11-24-Virtual Hosting and Tomcat

前言

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。

开源项目

从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。

系列文章

web server apache tomcat11-01-官方文档入门介绍

web server apache tomcat11-02-setup 启动

web server apache tomcat11-03-deploy 如何部署

web server apache tomcat11-04-manager 如何管理?

web server apache tomcat11-06-Host Manager App -- Text Interface

web server apache tomcat11-07-Realm Configuration

web server apache tomcat11-08-JNDI Resources

web server apache tomcat11-09-JNDI Datasource

web server apache tomcat11-10-Class Loader

web server apache tomcat11-11-Jasper 2 JSP Engine

web server apache tomcat11-12-SSL/TLS Configuration

web server apache tomcat11-13-SSI

web server apache tomcat11-14-CGI

web server apache tomcat11-15-proxy

web server apache tomcat11-16-mbean

web server apache tomcat11-17-default-servlet

web server apache tomcat11-18-clusting 集群

web server apache tomcat11-19-load balance 负载均衡

web server apache tomcat11-20-connectors 连接器

web server apache tomcat11-21-monitor and management 监控与管理

web server apache tomcat11-22-logging 日志

web server apache tomcat11-23-APR

web server apache tomcat11-24-Virtual Hosting and Tomcat

web server apache tomcat11-25-Advanced IO and Tomcat

web server apache tomcat11-26-maven jars

web server apache tomcat11-27-Security Considerations

web server apache tomcat11-28-Windows Service

web server apache tomcat11-29-Windows Authentication

web server apache tomcat11-30-The Tomcat JDBC Connection Pool

web server apache tomcat11-31-websocket

web server apache tomcat11-32-rewrite

web server apache tomcat11-33-CDI

web server apache tomcat11-34-Ahead of Time compilation support

假设

为了本教程的目的,请假设您拥有一个开发主机,其中有两个主机名,ren 和 stimpy。

还假设有一个运行的Tomcat实例,所以 $CATALINA_HOME 指的是它的安装位置,也许是 /usr/local/tomcat。

此外,本教程使用Unix风格的路径分隔符和命令;如果您使用Windows,请相应修改。

server.xml

最简单的情况下,编辑您的 server.xml 文件的 Engine 部分如下所示:

xml 复制代码
<Engine name="Catalina" defaultHost="ren">
    <Host name="ren"    appBase="renapps"/>
    <Host name="stimpy" appBase="stimpyapps"/>
</Engine>

请注意,每个主机的 appBase 下的目录结构不应该相互重叠。

查阅引擎和主机元素的其他属性的配置文档。

Webapps 目录

为每个虚拟主机创建目录:

bash 复制代码
mkdir $CATALINA_HOME/renapps
mkdir $CATALINA_HOME/stimpyapps

配置您的上下文

一般

上下文通常位于 appBase 目录下。例如,要在 ren 主机中以 war 文件的形式部署 foobar 上下文,使用 $CATALINA_HOME/renapps/foobar.war。

请注意,ren 的默认或 ROOT 上下文将部署为 CATALINA_HOME/renapps/ROOT.war(WAR文件)或 CATALINA_HOME/renapps/ROOT(目录)。

注意: 上下文的 docBase 绝对不能与主机的 appBase 相同。

context.xml - 方法 #1

在您的上下文中,创建一个 META-INF 目录,然后将上下文定义放在其中,文件命名为 context.xml,即 $CATALINA_HOME/renapps/ROOT/META-INF/context.xml。这样做使部署更加简单,特别是如果您正在分发一个 WAR 文件。

context.xml - 方法 #2

在 $CATALINA_HOME/conf/Catalina 下创建一个与您的虚拟主机对应的结构,例如:

bash 复制代码
mkdir $CATALINA_HOME/conf/Catalina/ren
mkdir $CATALINA_HOME/conf/Catalina/stimpy

请注意,结束目录名 "Catalina" 表示与上面显示的 Engine 元素的 name 属性相对应。

现在,对于您的默认 webapps,添加:

bash 复制代码
$CATALINA_HOME/conf/Catalina/ren/ROOT.xml
$CATALINA_HOME/conf/Catalina/stimpy/ROOT.xml

如果您想要为每个主机使用Tomcat管理器web应用程序,您还需要在此处添加:

bash 复制代码
cd $CATALINA_HOME/conf/Catalina
cp localhost/manager.xml ren/
cp localhost/manager.xml stimpy/

每个主机的默认值

您可以通过在主机特定的 xml 目录中指定新值,在 conf/context.xml 和 conf/web.xml 中找到的默认值。

根据我们之前的例子,您可以使用 $CATALINA_HOME/conf/Catalina/ren/web.xml.default 来自定义命名为 ren 的虚拟主机中部署的所有 webapps 的默认值。

更多信息

请查阅上下文元素的其他属性的配置文档。

相关推荐
程序媛学姐6 分钟前
SpringKafka错误处理:重试机制与死信队列
java·开发语言·spring·kafka
向阳25623 分钟前
SpringBoot+vue前后端分离整合sa-token(无cookie登录态 & 详细的登录流程)
java·vue.js·spring boot·后端·sa-token·springboot·登录流程
XiaoLeisj40 分钟前
【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
xml·java·数据库·spring boot·sql·intellij-idea·mybatis
风象南41 分钟前
SpringBoot实现数据库读写分离的3种方案
java·spring boot·后端
振鹏Dong1 小时前
策略模式——本质是通过Context类来作为中心控制单元,对不同的策略进行调度分配。
java·策略模式
ChinaRainbowSea1 小时前
3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列
java·分布式·后端·rabbitmq·ruby·java-rabbitmq
雾月551 小时前
LeetCode 914 卡牌分组
java·开发语言·算法·leetcode·职场和发展
melck1 小时前
liunx日志查询常用命令总结
java·服务器·网络
守护者1701 小时前
JAVA学习-练习试用Java实现“实现一个Hadoop程序,使用Hive进行复杂查询和数据筛查”
java·学习
程序员 小柴1 小时前
docker的与使用
java·docker·eureka