1. 程式人生 > >Web筆記(二)Tomcat 使用總結

Web筆記(二)Tomcat 使用總結

在一起 develop container rec data- gin jpg 之間 解壓縮

Tomcat 介紹

Tomcat是由Apache軟件基金會下屬的Jakarta項目開發的一個Servlet容器,按照Sun Microsystems提供的技術規範,實現了對Servlet和JavaServer Page(JSP)的支持,並提供了作為Web服務器的一些特有功能,如Tomcat管理和控制平臺、安全域管理和Tomcat閥等。由於Tomcat本身也內含了一個HTTP服務器,它也可以被視作一個單獨的Web服務器。但是,不能將Tomcat和Apache HTTP服務器混淆,Apache HTTP服務器是一個用C語言實現的HTTPWeb服務器;這兩個HTTP web server不是捆綁在一起的。Apache Tomcat包含了一個配置管理工具,也可以通過編輯XML格式的配置文件來進行配置。(摘錄自Wiki)(Apache Tomcat)

Tomcat 安裝

Tomcat是免費的開源軟件,可在直接在官方網站下載。
http://tomcat.apache.org/
1.可以直接在左側選擇版本:

技術分享圖片 enter image description here

2.選擇版本後可以在下方進行下載,可以選擇下載安裝版或者解壓版,這裏選擇了解壓版
tar.gz文件是Linux操作系統下的安裝版本
exe文件是Windows系統下的安裝版本
zip文件是Windows系統下的壓縮版本

技術分享圖片 enter image description here

3.下載完成後解壓縮,得到Tomcat目錄,

技術分享圖片 Tomca目錄

Tomcat 的默認端口

Tomcat 修改HTTP默認端口,可以直接修改Tomcat 目錄下\conf \server.xml文件。默認端口號為8080,修改為想要的端口,重啟Tomcat即可。

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

若要修改成8081端口:

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>

Tomcat 的虛擬目錄配置

什麽是虛擬目錄呢,簡單的說,我們可以根據請求的路徑不同,來發布不同的項目。如此形式:我們想要
在訪問http://www.codingme.net/testA 時,進入A項目。
在訪問http://www.codingme.net/testB 時,進入B項目。
這個時候我們就需要配置虛擬目錄來完成這個操作。
此時的URL:http://www.codingme.net/testA 不是單純的路徑,而是協議域名端口號+WEB應用testA。

自動映射虛擬目錄

在Tomcat 默認情況下,我們可以看到 %Tomca%\conf \server.xml文件最底部有配置如下:

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>

這裏Tomcat 默認配置了虛擬主機localhost,基礎應用目錄webapps,也就是%Tomca%\webapps\ 目錄,Tomcat 服務器會自動管理webapps目錄下的所有web應用,並把它映射成虛似目錄。
因此在需要配置虛擬目錄時我們可以直接把項目復制到webapps 目錄下進行發布
示例:

  1. 復制項目到webapps下
技術分享圖片 復制項目到webapps
  1. 查看test/ index.html 文件內容


    技術分享圖片 Index內容
  2. 運行%Tomcat%/bin/startup.bat 啟動Tomcat
  3. 進行訪問測試http://localhost:8080/test/index.html
技術分享圖片 訪問測試

註意:http://localhost:8080 會默認訪問 webapps/ROOT文件夾中的內容。

修改server.xml 映射虛擬目錄

我們也可以通過在server.xml 文件中的host 元素之間添加配置代碼來配置虛擬目錄:添加代碼如下;

Context path="/app" docBase="D:/app" debug="0" reloadable="true" crossContext="true"/>
技術分享圖片 image

配置中我們配置了訪問路徑為/app ,項目路徑D:/app 因此我們只要把要發布的內容放入D:/app 文件夾中即可。
配置完畢後 運行%Tomcat%/bin/startup.bat 啟動Tomcat,可以通過

http://localhost:8080/app/index.html

訪問到D:/app/index.html,需要多個虛擬目錄可以直接配置多條配置。

註意:若想使用http://localhost:8080 訪問項目則需要配置 path=""
註意:配置中的path值和docBase中的文件夾名稱沒有任何關系。

在conf /Catalina /localhost 增加xml文件映射虛擬目錄

博主比較推薦這一種。
在%Tomcat%/conf/Catalina/localhost目錄中,增加配置文件來配置虛擬目錄。
配置文件名稱格式為:虛擬目錄路徑.xml
舉個栗子:
在%Tomcat%/conf/Catalina/localhost目錄中增加文件 blog.xml
寫入內容:

<?xml version="1.0" encoding="utf-8"?>
 <Context
     docBase="d:/blog"
     reloadable="true">
</Context>
技術分享圖片 Tomcat-localhost

D盤下blog文件夾中內容:

技術分享圖片 image

docBase="d:/blog" 指定了Web應用存放位置為D盤下blog文件夾中。
reloadable="true"表示當blog文件夾中文件有變化中,自動加載。
配置完畢啟動Tomcat後就可以通過訪問到blog文件夾中的內容。

http://localhost:8080/blog

技術分享圖片 image

註意:需要多個虛擬目錄可以多建立幾個配置文件,文件名不能相同。
註意:若想使用http://localhost:8080 訪問項目則需要配置文件名為ROOT.xml
註意:文件名blog.xml 和配置中d:/blog 沒有關系,文件名可以寫成其他,如blog111.xml,那麽在訪問時就要訪問http://localhost:8080/blog111

Tomcat 的虛擬主機

首先我們先了解虛擬主機的用處,一個虛擬主機也就是一個網站。比如我們只有一個服務器,一個服務器上只有一個80端口,我們需要發布兩個web項目,那麽我們可以使用虛擬目錄,把兩個項目發布到兩個不同的路徑之下,但是如果我們有兩個不同的域名需要把兩個項目對應兩個域名,我們就需要配置虛擬主機了。

示例:兩個域名
一個是www.aaaa.com
一個是 www.bbbb.com

為了實驗效果,我們配置C:\Windows\System32\drivers\etc\hosts 文件,添加兩行映射。

127.0.0.1   www.aaaa.com
127.0.0.1   www.bbbb.com

此時我們本機可以使用 localhost / www.aaaa.com / www.bbbb.com 進行訪問。

配置虛擬主機指定www.aaaa.com訪問是的內容。
1:在server.xml中Engine元素中添加一個host子元素

<Host name="www.aaaa.com" debug="0" appBase="d:/aaaa" unpackWARs="true"
autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"
    prefix="aaaa_log." suffix=".txt" timestamp="true" />
</Host>

其中的

  1. name表示在訪問的域名是www.aaaa.com時會使用此配置。
  2. appBase="d:/aaaa" 指定了項目的發布路徑。

啟動Tomcat後,此時在使用www.aaaa.com進行訪問時候,會默認顯示d:/aaaa/ROOT中的內容。

技術分享圖片 image

如果存在 d:/aaaa/test,則可以通過http://www.aaaa.com:8080/test 進行訪問。
此時test也就是www.aaaa.com的虛擬目錄。
添加www.bbbb.com 訪問同上。

Tomcat 的單例多實例配置

參考之前文章
Linux配置Tomcat的單機多實例

作者: 雪漫士兵

博客: https://www.codingme.net

Web筆記(二)Tomcat 使用總結