web server apache tomcat11-24-Virtual Hosting and Tomcat

老马啸西风發表於2024-04-27

前言

整理這個官方翻譯的系列,原因是網上大部分的 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 部分如下所示:

<Engine name="Catalina" defaultHost="ren">
    <Host name="ren"    appBase="renapps"/>
    <Host name="stimpy" appBase="stimpyapps"/>
</Engine>

請注意,每個主機的 appBase 下的目錄結構不應該相互重疊。

查閱引擎和主機元素的其他屬性的配置文件。

Webapps 目錄

為每個虛擬主機建立目錄:

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 下建立一個與您的虛擬主機對應的結構,例如:

mkdir $CATALINA_HOME/conf/Catalina/ren
mkdir $CATALINA_HOME/conf/Catalina/stimpy

請注意,結束目錄名 "Catalina" 表示與上面顯示的 Engine 元素的 name 屬性相對應。

現在,對於您的預設 webapps,新增:

$CATALINA_HOME/conf/Catalina/ren/ROOT.xml
$CATALINA_HOME/conf/Catalina/stimpy/ROOT.xml

如果您想要為每個主機使用Tomcat管理器web應用程式,您還需要在此處新增:

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 的預設值。

更多資訊

請查閱上下文元素的其他屬性的配置文件。

相關文章