Tomcat的安裝和虛擬主機和context配置

一、 安裝Tomcat

注意:安裝 tomcat 前必須先部署JDK

1. 安裝JDK

  • 方法1:Oracle JDK 的二進制文件安裝
[root@node5 ~]#? mkdir /data
[root@node5 ~]#? cd /data/
[root@node5 data]#? rz[root@node5 data]#? ls
jdk-8u291-linux-x64.tar.gz
[root@node5 data]#? tar xf jdk-8u291-linux-x64.tar.gz
[root@node5 data]#? ln -s /data/jdk1.8.0_291? /usr/local/jdk
[root@node5 data]#? cd /usr/local/jdk/
[root@node5 jdk]#? ls
bin? COPYRIGHT? include? javafx-src.zip? jmc.txt? jre? legal? lib? LICENSE? man? README.html? release? src.zip? THIRDPARTYLICENSEREADME-JAVAFX.txt? THIRDPARTYLICENSEREADME.txt[root@node5 jdk]#? vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/
[root@node5 jdk]#? exit
[root@node5 ~]#? java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
  • 方法2:Oracle JDK 的rpm安裝
[root@node5 ~]#? cd /data
[root@node5 data]#? rz[root@node5 data]#? ls
apache-tomcat-9.0.16.tar.gz? jdk-8u201-linux-x64.rpm
[root@node5 data]#? rpm -ivh jdk-8u201-linux-x64.rpm[root@node5 data]#? vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
[root@node5 data]#? . /etc/profile[root@node5 data]#? java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

2. 安裝Tomcat

[root@node5 data]#? ls
apache-tomcat-9.0.16.tar.gz? jdk-8u201-linux-x64.rpm
[root@node5 data]#? tar xf apache-tomcat-9.0.16.tar.gz
[root@node5 data]#? ls
apache-tomcat-9.0.16? apache-tomcat-9.0.16.tar.gz? jdk-8u201-linux-x64.rpm[root@node5 data]#? ln -s /data/apache-tomcat-9.0.16 /usr/local/tomcat
[root@node5 data]#? cd /usr/local/tomcat/
[root@node5 tomcat]#? ls
bin? BUILDING.txt? conf? CONTRIBUTING.md? lib? LICENSE? logs? NOTICE? README.md? RELEASE-NOTES? RUNNING.txt? temp? webapps? work[root@node5 tomcat]#? cd bin
[root@node5 bin]#? ls
bootstrap.jar? catalina-tasks.xml? commons-daemon.jar??????????? configtest.sh? digest.sh???? setclasspath.bat? shutdown.sh? tomcat-juli.jar?????? tool-wrapper.sh
catalina.bat?? ciphers.bat???????? commons-daemon-native.tar.gz? daemon.sh????? makebase.bat? setclasspath.sh?? startup.bat? tomcat-native.tar.gz? version.bat
catalina.sh??? ciphers.sh????????? configtest.bat??????????????? digest.bat???? makebase.sh?? shutdown.bat????? startup.sh?? tool-wrapper.bat????? version.sh


方法1:執行自帶腳本,不推薦!

[root@node5 bin]#? ./catalina.sh? start
Using CATALINA_BASE:?? /usr/local/tomcat
Using CATALINA_HOME:?? /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:??????? /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:?????? /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.[root@node5 bin]#? ss -natp |grep 8080
LISTEN???? 0????? 100???????? :::8080??????????????????? :::*?????????????????? users:(("java",pid=15931,fd=54))

方法2:

[root@node5 bin]#? useradd -s /sbin/nologin tomcat??? //新建用戶
[root@node5 bin]#? cd /usr/local/
[root@node5 local]#? chown tomcat:tomcat tomcat/ -R?? //修改屬主和屬組[root@node5 bin]#? cat > /usr/lib/systemd/system/tomcat.service <<EOF
> [Unit]
> Description=Tomcat
> After=syslog.target network.target
>
> [Service]
> Type=forking
> ExecStart=/usr/local/tomcat/bin/startup.sh
> ExecStop=/usr/local/tomcat/bin/shutdown.sh
> RestartSec=3
> PrivateTmp=true
> User=tomcat
> Group=tomcat
>
> [Install]
> WantedBy=multi-user.target
>
> EOF
[root@node5 local]#? systemctl daemon-reload
[root@node5 local]#? systemctl start tomcat
[root@node5 local]#? ss -natp |grep 8080
LISTEN???? 0????? 100???????? :::8080??????????????????? :::*?????????????????? users:(("java",pid=16475,fd=54))

二、 配置文件及核心組件

1. 配置文件

1.1 安裝目錄下文件

目錄名字

功能

bin

存放啟動和關閉 Tomcat 的腳本文件,比較常用的是 catalina.sh、startup.sh、shutdown.sh 三個文件

conf

存放 Tomcat 服務器的各種配置文件,比較常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四個文件。

lib

存放 Tomcat 服務器的 jar 包,一般不作任何改動,除非連接第三方服務,比如 redis,那就需要添加相對應的 jar 包

logs

存放 Tomcat 日志 catalina.out

temp

存放 Tomcat 運行時產生的文件

webapps

存放項目資源的目錄

work

Tomcat 工作目錄,一般清除 Tomcat 緩存的時候會使用到(升級版本時注意要刪除里面的緩存)

  • bin

  • conf

  • lib

  • logs

  • temp

  • webapps

  • work

1.2 conf 子目錄文件

文件名

說明

server.xml

主配置文件 全局生效

web.xml

每個webapp只有“部署"后才能被訪問,它的部署方式通常由web.xml進行定義,其存放位置為WEB-INF/目錄中;此文件為所有的webapps提供默認部署相關的配置,每個web應用也可以使用專用配置文件,來覆蓋全局文件

context.xml

用于定義所有web應用均需加載的Context配置,此文件為所有的webapps提供默認配置,每個web應用也可以使用自已專用的配置,它通常由專用的配置文件context.xml來定義,其存放位置為WEB-INF/目錄中,覆蓋全局的文件

tomcat-users.xml

用戶認證的賬號和密碼文件

catalina.policy

當使用security選項啟動omcat時,用于為tomcat設置安全策略

catalina.properties

Tomcat環境變量的配置,用于設定類加載器路徑,以及一些與JVM調優相關參數

logging.properties

Tomcat日志系統相關的配置,可以修改日志級別和日志路徑等

注意:配置文件對于大小寫敏感

2. 組件

2.1 組件分層和分類

  • 頂級組件
    • Server,代表整個Tomcat容器,一臺主機可以啟動多tomcat 實例 ,需要確保端口不要產生沖突
  • 服務類組件
    • Service,實現組織Engine和Connector,建立兩者之間關聯關系, service 里面只能包含一個Engine
  • 連接器組件
    • Connector,有HTTP(默認端口8080/tcp)、HTTPS(默認端口8443/tcp)、AJP(默認端口8009/tcp)協議的連接器,AJP(Apache Jserv protocol)是一種基于TCP的二進制通訊協議。
  • 容器類
    • Engine、Host(虛擬主機)、Context(上下文件,解決路徑映射)都是容器類組件,可以嵌入其它組件,內部配置如何運行應用程序。
  • 內嵌類
    • 可以內嵌到其他組件內,valve、logger、realm、loader、manager等。以logger舉例,在不同容器組件內分別定義。
  • 集群類組件
    • listener、cluster

2.2 核心組件

名稱

說明

server

服務器,Tomcat運行的進程實例,一個Server中可以有多個service,但通常就一個

service

服務,用來組織Engine(引擎)和Connector(連接器,端口)的對應關系,一個service中只有一個Engine

connector

連接器,負責客戶端的HTTP、HTTPS、AJP等協議連接。一個Connector只屬于某一個Engine

Engine

即引擎,用來響應并處理用戶請求。一個Engine上可以綁定多個Connector

Host

即虛擬主機,可以實現多虛擬主機,例如使用不同的主機頭區分

Context

應用的上下文,配置特定url路徑映射和目錄的映射關系: url => directory

范例:多個組件關系 conf/server.xml

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">??? //此處建議將8005端口號修改為-1或0<Service name="Catalina"><Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" /><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /><Engine name="Catalina" defaultHost="localhost"><Host name="localhost"? appBase="webapps"unpackWARs="true" autoDeploy="true"><Context ><Context /></Host></Engine></Service>
</Server>

3. 磁盤文件和訪問的url對應關系

?????????????????????????? 等于訪問
102.168.204.50:8080? ----------------> /usr/local/tomcat/webapps/ROOT/index.jsp
102.168.204.50:8080/blog? -----------> /usr/local/tomcat/webapps/blog/index.jsp

ROOT 和 blog 是同級項目文件
ROOT 是默認的項目,可以省略不寫,其他的項目不可以省略

webapps 才是主站點
如果是訪問的是ROOT下的文件,url可以省略ROOT,否則不行

4. 主頁文件的優先級

  • index.html
  • index.htm
  • index.jsp
[root@localhost conf]# vim /usr/local/tomcat/conf/web.xml
//此文件末尾定義了優先級,可以在站點的目錄下配置
<welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file></welcome-file-list>項目特殊要求可以寫在子配置文件中???
[root@localhost blog]#chown -R tomcat:tomcat? WEB-INF/?? //修改權限

tomcat虛擬主機

#創建虛擬主機前,必須先創建相關目錄,否則創建虛擬機不成功
mkdir /data/web{1,2,3}/ROOT/   -pv
echo  web1 > /data/web1/ROOT/index.html
echo  web2 > /data/web2/ROOT/index.html
echo  web3> /data/web3/ROOT/index.html
chown -R tomcat.tomcat /data/#修改配置文件
vim /usr/local/tomcat/conf/server.xml 
#找到  host  主機項   ,注意  根目錄中 一定要有  ROOT  這是默認 的主目錄
#注意 默認的   結束    </HOST>  這段要在  默認結束的后面加上
<Host name="www.a.com"  appBase="/data/web1"unpackWARs="true" autoDeploy="true"></Host><Host name="www.b.com"  appBase="/data/web2"unpackWARs="true" autoDeploy="true"></Host><Host name="www.c.com"  appBase="/data/web3"unpackWARs="true" autoDeploy="true"></Host>systemctl restart tomcat

Context配置

Context作用:

  • 路徑映射:將url映射至指定路徑,而非使用appBase下的物理目錄,實現虛擬目錄功能
  • 應用獨立配置,例如單獨配置應用日志、單獨配置應用訪問控制
#映射指定路徑
<Context path="/test" docBase="/data/test" reloadable="true" />
#映射站點的根目錄
<Context path="/" docBase="/data/website" reloadable="true" />
#還可以添加日志等獨立的配置
<Context path="/test" docBase="/data/test" reloadable="true" ><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_test_log" suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Context>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37270.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37270.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37270.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++:std::function的libc++實現

std::function是個有點神奇的模板&#xff0c;無論是普通函數、函數對象、lambda表達式還是std::bind的返回值&#xff08;以上統稱為可調用對象&#xff08;Callable&#xff09;&#xff09;&#xff0c;無論可調用對象的實際類型是什么&#xff0c;無論是有狀態的還是無狀態…

【C++】string基本用法(常用接口介紹)

文章目錄 一、string介紹二、string類對象的創建&#xff08;常見構造&#xff09;三、string類對象的容量操作1.size()和length()2.capacity()3.empty()4.clear()5.reserve()6.resize() 四、string類對象的遍歷與訪問1.operator[ ]2.正向迭代器begin()和end()3.反向迭代器rbeg…

QTableView與QSqlQueryModel的簡單使用

測試&#xff1a; 這里有一個sqlite數據庫 存儲了10萬多條數據&#xff0c;col1是1,col2是2. 使用QSqlQueryModel和QTableView來顯示這些數據&#xff0c;也非常非常流暢。 QString aFile QString::fromLocal8Bit("E:/桌面/3.db");if (aFile.isEmpty())return;//打…

關于考摩托車駕照

剛通過了摩托車駕照考試&#xff0c;說兩句。 1、在哪兒考試就要搞清楚當地的規定&#xff0c;不要以為全國要求都一樣。 2、首先是報駕校。雖然至少有些地方允許自學后&#xff08;不報駕校&#xff09;考試&#xff0c;但報駕校聽聽教練說的&#xff0c;還是能提高通過率&a…

計算機圖形學筆記----矩陣

矩陣和標量的運算 ,則 矩陣與矩陣相乘 的矩陣A&#xff0c;的矩陣B。兩矩陣&#xff0c;結果為的矩陣&#xff0c;第一個矩陣的列數必須和第二個矩陣的行數相同&#xff0c;否則不能相乘 &#xff0c;中的每個元素等于A的第i行所對應的矢量和B的第j列所對應的矢量進行矢量點…

Django靚號管理系統:實現用戶列表功能

在本篇博文中,我們將介紹如何在Django靚號管理系統中實現用戶列表功能。這個功能允許管理員查看系統中所有用戶的基本信息。我們將逐步講解如何設置URL路由、創建視圖函數以及設計模板。 1. 設置URL路由 首先,我們需要在??urls.py??文件中添加一個新的URL路徑,以便訪問…

云計算【第一階段(22)】Linux的進程和計劃任務管理

目錄 一、查看進程 1.1、程序和進程的關系 1.2、查看進程 1.2.1、靜態查看進程信息ps ?編輯 1.2.1.1、實驗 1.2.2、動態查看進程信息top 1.2.2.1、實驗 1.2.2.2、top 命令全屏操作界面快捷鍵 1.2.3、pgrep根據特定條件查詢進程pid信息 1.2.4、pstree命令以樹形結構列出…

CentOS系統日志入門

日志清單 系統的引導日志:/var/log/boot.log核心啟動日志:/var/log/dmesg系統報錯日志:/var/log/messages郵件系統日志:/var/log/maillogFTP系統日志:/var/log/xferlog安全信息和系統登錄與網絡連接的信息:/var/log/secureNews日志:/var/log/spoolerRPM軟件包:/var/log/rpmpkg…

Android 常用ADB命令

文章目錄 Android 常用ADB命令概述adb 的工作原理命令adb命令shell命令 使用adb服務器操作設備操作應用文件操作activity操作日志操作 Android 常用ADB命令 概述 Android 調試橋 (adb) 是一種功能多樣的命令行工具&#xff0c;可讓您與設備進行通信。adb 命令可用于執行各種設…

Avue框架學習

Avue框架學習 我們的項目使用的框架是 Avue 在我看來這個框架最大的特點是可以基于JSON配置頁面上的From,Table以及各種各樣的輸入框等,不需要懂前端就可以很快上手,前提是需要多查一下文檔 開發環境搭建 由于我本地的環境全是用docker來搭建的,所以我依然選擇用docker搭建我…

萬字淺析視頻搜索系統中的多模態能力建設

萬字淺析視頻搜索系統中的多模態能力建設 FesianXu 20240331 at Tencent WeChat search team 前言 視頻搜索是天然的富媒體檢索場景&#xff0c;視覺信息占據了視頻的一大部分信息量&#xff0c;在視頻搜索系統中引入多模態能力&#xff0c;對于提高整個系統的能力天花板至關重…

機器人控制系列教程之任務空間運動控制器搭建(1)

任務空間運動控制簡介 任務空間運動控制—位置被指定給控制器作為末端執行器的姿態。然后&#xff0c;控制器驅動機器人的關節配置到使末端執行器移動到指定姿態的值。這有時被稱為操作空間控制。 任務空間運動模型表示機器人在閉環任務空間位置控制下的運動&#xff0c;可使用…

python基礎:高級數據類型:集合

1、集合的定義 集合是一個無序且無重復元素的列表。其定義與數學定義一致。其無序和不重復和字典特征類似&#xff0c;但是無“值”。 2、集合的創建 集合一般由列表創建&#xff0c;在初始化列表時保證其元素唯一性&#xff0c;即為集合。 創建方法&#xff1a;x set(list…

汽車電子工程師入門系列——AUTOSAR通信服務框架(下)

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 屏蔽力是信息過載時代一個人的特殊競爭力,任何消耗你的人和事,多看一眼都是你的不對。非必要不費力證明自己,無利益不試圖說服別人,是精神上的節…

GitHub每周最火火火項目(6.24-6.30)

項目名稱&#xff1a;dortania / OpenCore - Legacy - Patcher 項目介紹&#xff1a;該項目旨在讓用戶體驗如同以前一樣的macOS。它可能提供了一種方式來解決在某些情況下&#xff0c;用戶無法正常使用或升級macOS的問題。通過使用OpenCore - Legacy - Patcher&#xff0c;用戶…

python格式文件

python小白考后復習 CSV格式文件ini格式文件我們可以讀取所有節點還可以輸出一個節點下所有鍵值對組成的元組獲取節點下的鍵對應的值判斷節點是否存在添加節點還可以添加鍵值還可以刪除節點 XML格式文件讀取若是文件格式存在的xml若是以字符串形式存在的xml獲取子標簽還有獲取子…

【分布式計算框架 MapReduce】高級編程—搜索日志數據分析

目錄 一、對于 sogou_500w_utf 數據&#xff0c;使用 MapReduce 編程模型完成對以下數據的分析任務 1. 統計 2011-12-30 日搜索記錄&#xff0c;每個時間段的搜索次數 &#xff08;1&#xff09;運行截圖 &#xff08;2&#xff09; 源代碼 2. 統計 2011-12-30 日 3 點至 …

2024最新初級會計職稱題庫來啦!!!

16.根據增值稅法律制度的規定&#xff0c;下列各項中&#xff0c;屬于"提供加工、修理修配勞務"的是&#xff08;&#xff09;。 A.修理小汽車 B.修繕辦公樓 C.爆破 D.礦山穿孔 答案&#xff1a;A 解析&#xff1a;選項AB&#xff1a;修理有形動產&#xff08;…

【PL理論深化】(13) 變量與環境:文法結構 | 真假表達式:isZero E | let 表達式疊放 | 定義的規則 | 條件語句的使用

&#x1f4ac; 寫在前面&#xff1a;從現在開始&#xff0c;讓我們正式設計和實現編程語言。首先&#xff0c;讓我們擴展在之前定義的整數表達式語言&#xff0c;以便可以使用變量和條件表達式。 目錄 0x00 文法結構 0x01 真假表達式&#xff1a;isZero E 0x02 let 表達式疊…

Elasticsearch 第四期:搜索和過濾

序 2024年4月&#xff0c;小組計算建設標簽平臺&#xff0c;使用ES等工具建了一個demo&#xff0c;由于領導變動關系&#xff0c;項目基本夭折。其實這兩年也陸陸續續接觸和使用過ES&#xff0c;兩年前也看過ES的官網&#xff0c;當時剛畢業半年多&#xff0c;由于歷史局限性導…