1. 程式人生 > >Tomcat servlet.xml配置問建詳解

Tomcat servlet.xml配置問建詳解

由於 Tomcat 基於 Java,實際上在各種 Linux 發行版裡的配置方法都大同小異,只是我看見在 Arch Linux 環境裡搭建 Tomcat 的文章比較少,所以在 Arch Linux 實踐一遍然後得出此文。此文假設你對 Tomcat 並不十分了解,主要筆墨將會在 Tomcat 的配置之上。

1、安裝 Java JDK

在 Arch Linux 的 extra 源裡有 jdk7-openjdk 和 openjdk6,可以直接使用 pacman 安裝,至於選用哪一個可以視具體情況而定。我安裝的是 OpenJDK 7:

$ sudo pacman -S jdk7-openjdk

2、安裝 Tomcat

同樣地,extra 源裡已有 tomcat 版本5、6、7,可以根據具體情況而定,我這裡安裝的是tomcat 6。

$ sudo pacman -S tomcat6

預設情況 tomcat 6 安裝路徑為 /usr/share/tomcat6,這裡羅列一下主要目錄的作用(箭頭表示目錄連結的實際位置):

/usr/share/tomcat6: 程式主目錄,也是變數$CATALINA_HOME 所指向的位置,在單 tomcat 例項的情況下,也是變數 $CATALINA_BASE 所指向的位置。

conf -> /etc/tomcat6: 配置檔案目錄。

lib -> /usr/share/java/tomcat6: 共享jar包目錄,這些包既給tomcat 所使用,也能給 web 應用程式所引用。

logs -> /var/log/tomcat6: 日誌目錄,對於查詢錯誤以及檢視訪問記錄很有幫助。

webapps -> /var/lib/tomcat6/webapps: 預設的 web 應用程式目錄,tomcat6 自帶了幾個示例程式,下面會介紹。

現在可以嘗試啟動 tomcat 服務:

$ sudo /etc/rc.d/tomcat start

根據安裝的 Java 執行時的不同,啟動時可能有錯誤,檢查啟動指令碼的配置檔案 /etc/conf.d/tomcat6 裡面的 TOMCAT_JAVA_HOME 變數的值,在我的安裝中 Java 執行時應該在 /opt/java 裡(用 $ which java 就可以看到了),因此將:

TOMCAT_JAVA_HOME=/usr/lib/jvm/java-7-openjdk更改為如下即可: TOMCAT_JAVA_HOME=/opt/java

重啟 tomcat 服務:

$ sudo /etc/rc.d/tomcat6 restart

一般應該沒有問題,開啟任意瀏覽器並在位址列裡輸入 “http://localhost:8080″,如果看到 tomcat 貓即說明服務已經安裝妥當並且能正常運行了。

3、認識 webapps 目錄

這個目錄位於 tomcat6 的安裝目錄之下,實際內容位於 /var/lib/tomcat6/webapps。 webapps 目錄裡每一個目錄對應一個web應用程式,比如 docs 目錄的訪問地址是http://localhost:8080/docs,同理 manager 目錄的訪問地址是 http://localhost:8080/manager,其中比較特殊的是 ROOT 目錄,它對應的訪問地址恰好是網站的根目錄,即 http://localhost:8080/。

Tomcat 附帶的示例程式可以逐個訪問體驗一下,其中manager 和 host-manager 這兩個應用程式設定了需要登入驗證才能訪問,增加登入使用者的方法是編輯 Tomcat 安裝目錄下的配置檔案 conf/tomcat-users.xml (實際上也是檔案/etc/tomcat6/tomcat-users.xml),新增如下幾行:

<role rolename="manager-gui"/>

<rolerolename="admin-script"/>

<rolerolename="admin-gui"/>

<user username="tomcat"password="tomcat"roles="manager-gui,admin-script,admin-gui"/>

然後重啟 Tomcat 服務,即可以通過使用者名稱 tomcat 和密碼 tomcat 登入並訪問 manager 和 host-manager 兩個應用程式。

每個 Java Web 應用程式都有如下的目錄結構:

/index.html 訪客直接訪問的資源,比如靜態圖片和CSS樣式表。

/WEB-INF/ 訪客不能直接訪問的資源。

/WEB-INF/classes 應用程式的 Java 原始碼編譯後的class檔案。

/WEB-INF/web.xml 應用程式的配置檔案。

/WEB-INF/lib 應用程式所引用的包。

當然也不是所有都是必須的,你甚至可以建立一個目錄,比如“hello”,然後在裡面只建立一個 index.html 檔案(內容隨便),即可以通過 http://localhost:8080/hello/index.html 訪問了。(當然這樣的不是Web應用程式,此方法僅用於測試用)

下面使用 Apache Maven 建立一個最簡單的 Web 應用程式,在使用者目錄裡執行如下命令建立 Web 應用程式的骨架:

$ mvn archetype:generate

在互動介面中,

Choose a number or apply filter: 輸入 174,即建立maven-archetype-webapp 型別專案。 Choose version: 輸入5,即版本 1.0。 Define value for property ‘groupId’: 輸入 org.test。 Definevalue for property ‘artifactId’: 輸入 demo。 Define value for property ‘version’: 輸入 1.0。 Definevalue for property ‘package’: 輸入 org.test.demo Confirm properties configuration: 直接回車

上面涉及 Maven 知識不在此文的討論範圍,如果不熟悉的話可以參閱免費的中文電子圖書《Maven in action》,順帶提一下,Maven 是Java專案構建和管理的最常用工具之一。

現在應該看到一個名為 demo 的目錄,進入後可以使用 Maven 打包專案:

$ cd demo

$ mvn package

打包的結果是檔案 ./target/demo.war,把這個檔案複製到 webapps 目錄:

$ sudo cp target/demo.war/var/lib/tomcat6/webapps/

由於 Tomcat 預設建立的站點會自動部署應用程式,所以剛才複製到 webapps 目錄的檔案 demo.war 會被自動解壓縮,檢視 webapps 目錄應該會發現多出一個名字為 demo 的目錄,現在可以在瀏覽器裡嘗試訪問 http://localhost:8080/demo,應該看到 “Hello World!”字樣,這就是剛才用Maven 建立的 Web 應用程式執行的結果。

需要說明的是,java web 應用程式打包之後所形成的 war 檔案並不是一定要解壓出來才能執行的,這點將會在下一節的配置裡會講到。

4、認識 Tomcat 的主配置檔案 server.xml

這個檔案位於 tomcat 6 安裝目錄之下的 conf 目錄之內,實際內容位於 /etc/tomcat6/server.xml。

正如該檔案的副檔名所示,這是一個 xml 格式的檔案,開啟之後將會看到如下的結構:

<Server port="8005"shutdown="SHUTDOWN">

   <Service name="Catalina">

       <Executor ...... />

       <Connector ...... />

       <Connector ...... />

       <Engine name="Catalina" ... >

            <Host name="localhost" ...>

                <Context ... />

           </Host>

       </Engine>

   </Service>

</Server>

即一個由 Server->Service->Engine->Host->Context 組成的四層結構,從裡層向外層分別是:

Context: 即 Web 應用程式,一個Context 即對於一個 Web 應用程式。

Host:即虛擬主機,比如 www.dog.com對應一個虛擬主機,api.dog.com 對於另一個虛擬主機。一個 Host 用於定義一個虛擬主機。(所謂的”一個虛擬主機”可簡單理解為”一個網站”)

Engine:一組虛擬主機的集合。比如www.dog.com和 api.dog.com 可以組成一組虛擬主機集合。

Service:一組 Engine 的集合,包括執行緒池Executor 和聯結器 Connector 的定義。

CONNECTOR 的配置

一個 Connector 即一個對外界開放的埠,簡單理解就是大部分網路服務程式都會遇到的 IpAddress:Port 的組合,比如 192.168.0.10:8080 就是一個埠,當然在 Connector 裡可以定義的內容要豐富得多,即 Connector 這個 XML 節點裡可以加上許多屬性。下面列舉一下常用的:

enableLookups:(default=true) 是否允許反向解析訪客的IP地址,當你的應用程式使用request.getRemoteHost() 時如果只需要IP地址,建議禁用此項,這樣能節省反向域名解析的時間。

maxPostSize:(default=2097152 即2MB) 最大允許 POST 上傳的資料大小(單位為:位元組),對於一般網站來說,比如有寫評論寫文章的網站,預設的2MB已經足夠,不過如果網站帶有圖片甚至檔案上傳功能,則需要根據具體情況來定。

protocol:聯結器的型別,tomcat 6 有如下幾種選擇

org.apache.coyote.http11.Http11Protocol:簡寫為“HTTP/1.1″,這是預設的聯結器,一個訪客網路連線需要一個執行緒,併發效能比較低。

org.apache.coyote.http11.Http11NioProtocol:NIO聯結器,一個由非阻塞的socket工作模式構成的聯結器,併發效能良好,純Java實現。

org.apache.coyote.http11.Http11AprProtocol:APR聯結器,所謂 APR 就是網路上最多伺服器使用的Web 服務程式 Apache Http Server 所使用的庫,Tomcat 建議在生產環境使用,具體方法下面會介紹。

redirectPort:當用戶訪問非https的資源而該資源又需要https方式訪問時,tomcat會自動重定向到https埠,一般https使用 TCP 443埠,所以一般取值”443″。

SSLEnabled:(default=false),設定當前聯結器是否使用安全SSL傳輸,如果設定為”true”,則應該同時設定下面兩個屬性: scheme=”https” (default=http) 可以設定為 http 或者 https。secure=”true” (default=false)。

adress:聯結器所繫結的IP地址,當一臺伺服器存在多個ip地址時可以指定其中的需要繫結的一個,預設不設定該屬性的值表示綁定當前伺服器的所有ip地址。

compressableMimeType:(default=”text/html,text/xml,text/plain”) 指定需要GZIP壓縮的資源的型別。

compression:(default=off) 是否啟用GZIP壓縮,可以取值on/off/force,設定為on之後會對 compressableMimeType 屬性指定的資源型別啟用GZIP壓縮。

connectionTimeout:(default=”60000″)當訪客網路連線後,伺服器等待第一行Request頭出現的時間。單位是毫秒。

executor:指定當前聯結器使用的執行緒池的名稱,如果指定,則忽略其他針對執行緒數量的設定,比如 maxThreads。

maxThreads:(default=200) 最多可建立執行緒的數量。

port=”80″:繫結埠。

keepAliveTimeout:(default=connectionTimeout),訪客完成一次請求後維持網路連線的時間。

一個簡單的 Connector 定義如下:

<Connector port="80"protocol="HTTP/1.1"

              connectionTimeout="60000"

          redirectPort="443" />

EXECUTOR 的配置

Executor 用於定義共享的執行緒池。預設情況下每個Connector 都會產生自己的一個執行緒池,如果你想多個 Connector 共享一個執行緒池,則可以先定義一個執行緒池,如:

<Executorname="tomcatThreadPool" namePrefix="catalina-exec-"

       maxThreads="150" minSpareThreads="4"/>

然後修改上述的 Connector 配置,增加 executor 屬性,修改後的配置如下:

<Connectorexecutor="tomcatThreadPool"

               port="80"protocol="HTTP/1.1"

              connectionTimeout="60000"

               redirectPort="443"/>

HOST 的配置

一個 Host 配置即為一個虛擬主機,例如下面是一個簡單的 Host 配置:

<Host name="localhost"  appBase="webapps"

           unpackWARs="true" autoDeploy="true">

       <Alias>dog.com</Alias>

       <ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs" 

              prefix="localhost_access_log." suffix=".txt"pattern="common" resolveHosts="false"/>

</Host>

Host 配置節點各個屬性的作用:

name:設定虛擬主機的域名,比如localhost 表示本機名稱,實際應用時應該填寫具體域名,比如 www.dog.com 或者 dog.com,當然如果該虛擬主機是給內部人員訪問的,也可以直接填寫伺服器的 ip 地址,比如 192.168.1.10。

autoDeploy:是否允許自動部署,預設值是 true,即表示 Tomcat 會自動檢測 appBase目錄下面的檔案變化從而自動應用到正在執行的 Web 應用程式。

unpackWARs:設定是否自動展開 war 壓縮包再執行 Web 應用程式,預設值是true。

appBase:設定 Web 應用程式組的路徑。前面說過一個虛擬主機可以由多個 Web 應用程式構成,所以這裡的 appBase 所指向的目錄應該是準備用於存放這一組 Web 應用程式的目錄,而不是具體某個 Web 應用程式的目錄本身(即使該虛擬主機只由一個 Web 應用程式組成)。appBase 屬性的值可以是相對於 Tomcat 安裝目錄的相對路徑,也可以是絕對路徑,需要注意的是該路徑必須是 Tomcat 有許可權訪問的,通過 Arch Linux 源安裝的 Tomcat 是通過 tomcat 使用者執行的,因此建立一個新的 appBase 目錄之後可以使用 chown 命令更改目錄的所有者。

下面舉例說明如何建立一個新的虛擬主機 www.dog.com:

在目錄 /var/lib/tomcat6 下面可以看到安裝 Tomcat 時預設建立的 webapps 目錄,為了方便管理我們即將建立的虛擬主機的文件也在 /var/lib/tomcat6 裡建立:

$ sudo mkdir dog

然後在 dog 目錄裡面建立目錄 ROOT,再在 ROOT 裡面建立檔案 index.html(內容隨便)。

現在將目錄的所有者和所有組都更改為 tomcat:

$ sudo chown -R tomcat:tomcat dog

然後在 server.xml 的 Host 節點下增加如下 Host 節點:

<Host name="www.dog.com"  appBase="/var/lib/tomcat6/dog">

</Host>

重啟 Tomcat 服務就可以在瀏覽器裡通過地址 http://www.dog.com 訪問這個新建立的虛擬主機了,當然你必須要先在 /etc/hosts 檔案裡增加 www.dog.com 到 127.0.0.1 的解析記錄,如下:

127.0.0.1   www.dog.com

有時一個虛擬主機可能會同時繫結多個域名,比如 www.dog.com 和 dog.com,這時可以通過在 Host 配置節點裡增加 Alias 實現,比如:

<Alias>dog.com</Alias>

另外上面示例當中的 <Valve className=… /> 配置了訪客的訪問日誌的儲存位置以及檔名。

ENGINE 的配置

預設的 Engine 節點如下:

<Engine name="Catalina" defaultHost="localhost">

</Engine>

這個應該不用展開敘述了,其中 defaultHost 用於指定訪客在沒有相應的虛擬主機時,Tomcat 預設選擇的虛擬主機的名稱。考慮如下的情形:

假如有3個域名都 DNS 解析到你的伺服器,比如 dog.com, www.dog.com, api.dog.com,當前你只配置了虛擬主機 dog.com 和 www.dog.com,那麼當有個訪客通過api.dog.com 訪問你的伺服器時,Tomcat 就會依據 defaultHost 的設定返回其中一個虛擬主機執行的結果。實際應用中 defaultHost 應該設定為你的主力域名,比如 www.dog.com。

5、多站點的配置:設定多個HOST節點

有時我們需要在一臺伺服器上跑多個站點,通過 Tomcat 很容易實現這點,下面假設我們要搭建 www.dog.com 和 www.cat.com 這兩個站點。

首先要確定你的兩個域名的 DNS 已經能正確解析到你的伺服器,因為這裡我們是做實驗,所以可以在本機新增域名解析。修改 /etc/hosts 檔案,加入如下兩行:

127.0.0.1   www.cat.com

127.0.0.1   www.dog.com

然後在 /var/lib/tomcat6 目錄裡分別建立名字為 cat 和 dog 的兩個目錄,然後在每個目錄裡都建立名字為 ROOT 的目錄,並在 ROOT 裡面建立名字為 index.html 檔案(內容隨便)。然後將目錄 cat 和 dog 的所有者和所有組都更改為 tomcat,方法參考上一節,這裡不再贅述。

現在編輯 Tomcat 的主配置檔案 server.xml,在預設的 Host 節點下面再加入如下兩個新的 Host 節點:

<Host name="www.dog.com"appBase="/var/lib/tomcat6/dog" autoDeploy="true"unpackWARs="true">

</Host>

<Host name="www.cat.com"appBase="/var/lib/tomcat6/cat" autoDeploy="true"unpackWARs="true">

</Host>

在 Host 節點裡面可以根據上一節的說明加入自己需要的屬性或者 Alias 和 Value 子節點。重啟 Tomcat 服務,現在應該可以在瀏覽器裡分別通過 http://www.dog.com 和 http://www.cat.com 瀏覽這兩個站點了。

6、使用 NIO 聯結器

預設的聯結器併發效能不太好,如果網站的併發訪問量不大則無所謂,或者在公司內部網這點可能體會不出來(因為在內部網可能每個請求在1秒鐘之內就完成了),當環境換成 Internet 之後,可能每個客戶請求在網路會幾秒甚至幾十秒的延時才傳輸完成,這樣則會導致“許多訪客同時連線”的現象,當 Tomcat 的聯結器所有執行緒都被佔用的情況下,後來者(訪客)就會被卡在門外。因此我們最好在實際環境中把預設的聯結器改成 NIO 聯結器(non blocking Java connector)。方法很簡單,只要把 Connector節點的 protocol 屬性值更改為 “org.apache.coyote.http11.Http11NioProtocol” 即可,例如原先的是這樣:

<Connector port="80"protocol="HTTP/1.1"

          redirectPort="443" />

修改為:

<Connector port="80"protocol="org.apache.coyote.http11.Http11NioProtocol"

          redirectPort="443" />

然後重啟 Tomcat 伺服器即可。

7、為網站新增 SSL 證書

有時網站可能涉及重要的業務資料,在網際網路上傳輸這些頁面最好以 https 方式傳輸,這樣可以防止重要資訊被中間環節竊取。

詳細的方法可以參考我之前的一篇文章《新增 GoDaddy SSL 證書到你的網站》,文章介紹如何申請簽名的SSL 證書以及如何修改 Tomcat 的配置。如果你現在只是想試驗一下為網站新增 https 功能,或者只是在公司的內部網站使用上 https,則可以使用一個簡單的方法實現:使用自簽名 SSL 證書。所謂自簽名的 SSL 證書就是自己產生的證書,這種證書沒有通過第三方證書商簽名認證,所以在瀏覽這種網站時瀏覽器會提示證書錯誤,不過訪客是完全可以繼續瀏覽網站內容。

下面假設我們要為上一節的 www.dog.com 新增SSL證書。首先使用 Java 自帶的 keytool 工具產生一個 keystore 檔案(一種用於存放證書的檔案格式),在自家目錄執行如下命令:

$ keytool -keysize 2048 -genkey -aliastomcat -keyalg RSA -keystore tomcat.keystore

然後它會提示你設定一個密碼以及輸入DN資訊:

Enter keystore password:  設定一個用於保護你keystore檔案的密碼,例如123456

Re-enter new password: 重複上面的密碼

What is your first and last name?

 [Unknown]:  www.dog.com (就是域名啦)

What is the name of your organizationalunit?

 [Unknown]:  Networking 組織單位名稱(隨便)

What is the name of your organization?

 [Unknown]:  dog.com 組織名稱(隨便)

What is the name of your City or Locality?

 [Unknown]:  Shenzhen 所在城市(隨便)

What is the name of your State or Province?

 [Unknown]:  Guangdong 所在省份(隨便)

What is the two-letter country code forthis unit?

 [Unknown]:  CN 所在國家的兩位代號(隨便)

Is CN=www.dog.com, OU=Networking,O=dog.com, L=Shenzhen, ST=Guangdong, C=CN correct?

 [no]:  yes 以上資訊正確則輸入yes

Enter key password for

   (RETURN if same as keystore password): 這一步直接敲回車

完成後會在當前目錄產生一個 tomcat.keystore 檔案。把這個檔案複製到 dog 網站應用程式的根目錄(即 /var/lib/tomcat6/dog):

$ sudo cp tomcat.keystore/var/lib/tomcat6/dog

然後修改 Tomcat 的主配置檔案 server.xml,在預設的 Connector 節點之下新增如下的新 Connector 節點:

<Connector port="443"protocol="HTTP/1.1″

   SSLEnabled="true"

   scheme="https" secure="true"

   clientAuth="false" sslProtocol="TLS"

   keystoreFile="/var/lib/tomcat6/dog/tomcat.keystore"

   keystorePass="123456" />

假如你使用的是 NIO 聯結器,則應該這樣把 protocol 屬性值換成 Http11NioProtocol,即:

<Connector port="443"protocol="Http11NioProtocol″

   SSLEnabled="true"

   scheme="https" secure="true"

   clientAuth="false" sslProtocol="TLS"

   keystoreFile="/var/lib/tomcat6/dog/tomcat.keystore"

   keystorePass="123456" />

重啟 Tomcat 服務,用瀏覽器訪問 https://www.dog.com,這時瀏覽器可能會提示證書錯誤,忽略它(對於 Firefox 瀏覽器還需要點選 “新增例外” 按鈕才能忽略)即可以看到已經是 https 方式在瀏覽網頁了。

8、使用 APR 高效能聯結器

APR 即 Apache Portable Runtime,提供了 ApacheHttp 的高效能特性,下面普通聯結器、NIO和APR的特性簡單比較(摘自這裡):

                  Java Blocking Connector       Java Nio Blocking Connector       APR Connector

   Classname        Http11Protocol                 Http11NioProtocol        Http11AprProtocol

   Tomcat Version   3.x 4.x 5.x6.x                       6.x                     5.5.x 6.x

   Support Polling         NO                             YES                        YES

   Polling Size           N/A                   Unlimited - Restricted bymem        Unlimited - Configurable

   Read HTTP Request    Blocking                     NonBlocking                   Blocking

   Read HTTP Body        Blocking                     Sim Blocking                   Blocking

   Write HTTP Response  Blocking                     SimBlocking                   Blocking

   SSL Support           JavaSSL                     Java SSL                       OpenSSL

    SSLHandshake         Blocking                     Non blocking                   Blocking

   Max Connections      maxThreads                   Seepolling size               See pollingsize

Tomcat 文件在 NIO 和 APR 之間比較推薦後者,由於我沒有實際環境(即大量從 internet 過來的訪問)詳細測試和比較,所以我也不太清楚兩者相差多少。下面介紹使用 APR 的方法:

先安裝 APR for Tomcat 的本地庫和 OpenSSL(假如需要使用 SSL 證書並且系統還沒安裝的話),Arch Linux 的 local 源裡面已經存在這兩者,所以安裝方法很簡單:

$ sudo pacman -S tomcat-native

$ sudo pacman -S openssl

然後修改 Tomcat 的主配置檔案 server.xml,把 Connector 的 protocol 屬性值修改為“org.apache.coyote.http11.Http11AprProtocol”,修改後的配置大致如下:

<Connector port="80"protocol="org.apache.coyote.http11.Http11AprProtocol"

          redirectPort="443" />

(注:保留 protocol=”HTTP/1.1″ 屬性值也是可以的)

然後重啟 Tomcat 服務即可,如何知道是否用上 APR 聯結器呢?只要翻查 Tomcat 的日誌檔案就知道了,預設的日誌檔案為:/var/log/tomcat6/catalina.err:

$ sudo tail /var/log/tomcat6/catalina.err

如果在重啟 Tomcat 服務後看到日誌末尾處有出現下面紅色字的內容,則表示已經成功用上 APR聯結器了。

Feb 19, 2012 9:44:05 AMorg.apache.coyote.http11.Http11AprProtocol start INFO: Starting CoyoteHTTP/1.1 on http-80 Feb 19, 2012 9:44:05 AM org.apache.coyote.http11.Http11AprProtocol startINFO: Starting Coyote HTTP/1.1 on http-443 Feb 19, 2012 9:44:05 AMorg.apache.catalina.startup.Catalina start INFO: Server startup in 1281 ms

如果你使用了 APR 聯結器同時又需要新增 SSL 證書(即需要 https 訪問功能),則需要使用 OpenSSL 的方法產生加密私鑰並且修改一下相應的 Connector 的配置,仍然以上面第7節的例子,即為 www.dog.com 站點新增 SSL 證書來講解。

先用 OpenSSL 產生私鑰以及自簽名,在自家目錄下執行下面命令:

# Generate private key

$ openssl genrsa -out ca.key 1024

# Generate CSR

$ openssl req -new -key ca.key -out ca.csr

# Generate Self Signed Key

$ openssl x509 -req -days 365 -in ca.csr-signkey ca.key -out ca.crt

同上面第7節類似,中途也會要求你輸入 DN 資訊,完成後把 ca.crt 和 ca.key 檔案複製到 dog 站點應用程式的根目錄:

$ sudo cp ca.crt /var/lib/tomcat6/dog

$ sudo cp ca.key /var/lib/tomcat6/dog

然後修改 Connector 節點為如下:

<Connector port="443"SSLEnabled="true"

          scheme="https" secure="true"

          SSLCertificateFile="/var/lib/tomcat6/dog/ca.crt"

          SSLCertificateKeyFile="/var/lib/tomcat6/dog/ca.key"/>

重啟 Tomcat 服務之後生效。

最後

此文簡單講述在 Arch Linux 環境下安裝 Tomcat 6、修改主配置檔案、搭建多站點、新增 SSL 證書以及使用高效能的 NIO 和 APR 聯結器的方法和步驟。