Web筆記(二)Tomcat 使用總結
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.可以直接在左側選擇版本:
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-8fe44370886976c6.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/845/format/webp)
2.選擇版本後可以在下方進行下載,可以選擇下載安裝版或者解壓版,這裏選擇了解壓版
tar.gz文件是Linux操作系統下的安裝版本
exe文件是Windows系統下的安裝版本
zip文件是Windows系統下的壓縮版本
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-da4dec35b0868363.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/669/format/webp)
3.下載完成後解壓縮,得到Tomcat目錄,
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-ac6fe405b006b105.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/687/format/webp)
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 目錄下進行發布
示例:
- 復制項目到webapps下
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-3fae73ab615e0b48.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/644/format/webp)
-
查看test/ index.html 文件內容
Index內容
- 運行%Tomcat%/bin/startup.bat 啟動Tomcat
- 進行訪問測試http://localhost:8080/test/index.html
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-02c57f051ce2ea9c.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/474/format/webp)
註意:http://localhost:8080 會默認訪問 webapps/ROOT文件夾中的內容。
修改server.xml 映射虛擬目錄
我們也可以通過在server.xml 文件中的host 元素之間添加配置代碼來配置虛擬目錄:添加代碼如下;
Context path="/app" docBase="D:/app" debug="0" reloadable="true" crossContext="true"/>
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-dbc61c64b5cc182c.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/826/format/webp)
配置中我們配置了訪問路徑為/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>
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-df2a2be73bbac8a8.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/614/format/webp)
D盤下blog文件夾中內容:
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-30c101b07b62b632.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/499/format/webp)
docBase="d:/blog"
指定了Web應用存放位置為D盤下blog文件夾中。reloadable="true"
表示當blog文件夾中文件有變化中,自動加載。
配置完畢啟動Tomcat後就可以通過訪問到blog文件夾中的內容。
http://localhost:8080/blog
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-3e7924ec5d4eaaac.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/399/format/webp)
註意:需要多個虛擬目錄可以多建立幾個配置文件,文件名不能相同。
註意:若想使用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>
其中的
- name表示在訪問的域名是www.aaaa.com時會使用此配置。
- appBase="d:/aaaa" 指定了項目的發布路徑。
啟動Tomcat後,此時在使用www.aaaa.com進行訪問時候,會默認顯示d:/aaaa/ROOT中的內容。
![技術分享圖片](https://upload-images.jianshu.io/upload_images/2626549-7adecebeff7bdf01.gif?imageMogr2/auto-orient/strip%7CimageView2/2/w/917/format/webp)
如果存在 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 使用總結