K8S原來如此簡單(三)Pod+Deployment
------------恢復內容開始------------
簡介
Tomcat伺服器是Apache的一個開源免費的Web容器,源免費的Web容器。實現了 JavaEE平臺下部分技術規範,屬於輕量級應用伺服器。
作用
可以在Tomcat中執行編寫的Servlet、JSP。
下載
官網地址:https://tomcat.apache.org/
安裝:
Tomcat是綠色軟體,解壓完即可使用,在安裝前要先配置jdk和jre環境變數
Tomcat目錄結構:
- bin:存放tomcat啟動或關閉所需的命令檔案(以.sh結尾的是linux命令,以.bat結尾的是win命令)
- conf:存放配置檔案
- lib:存放執行時所需的jar包
- logs:存放執行過程所產生的日誌檔案
- temp:存放執行過程所產生的臨時檔案
- work:存放執行時編譯後的檔案,如jsp編譯後的檔案
- webapps:存放應用程式,tomcat啟動時會載入webapps目錄下的應用程式,以資料夾或者jar包形式釋出應用
Tomcat的啟動與關閉:
啟動:
方式一:執行bin目錄下的startup.bat檔案
方式二:在命令列視窗進入bin目錄,輸入catlina.bat start,catlina.bat為命令檔案,start為引數
關閉:
方式一:執行bin目錄下的shutdown.bat檔案
方式二:在命令列視窗進入bin目錄,輸入catlina.bat stop,catlina.bat為命令檔案,stop為引數
方式三:直接關閉Tomcat控制檯視窗
如何訪問Tomcat:
訪問本機Tomcat的URL
http://localhost:埠
訪問Tomcat的URL
http://ip:埠
Tomcat的配置檔案
context.xml(唯一一個修改後不用重啟伺服器的配置檔案,其他若修改都得重啟伺服器才能生效)
Tomcat 公用的環境配置。 Tomcat 伺服器會定時 去掃描這個檔案。一旦發現檔案被修改(時間戳改變了),就會自 動重新載入這個檔案,而不需要重啟伺服器 。
web.xml
Web應用程式描述檔案,都是關於是Web應用程式的配置檔案。所 有Web應用的 web.xml 檔案的父檔案。
server.xml
是 tomcat 伺服器的核心配置檔案,server.xml的每一個元素都對 應了 tomcat中的一個元件,通過對xml中元素的配置,實現對 tomcat中的各個元件和埠的配置。
tomcat-users.xml
配置訪問Tomcat的使用者以及角色的配置檔案。
如何解決啟動Tomcat時控制檯的亂碼問題
產生亂碼的原因:
Tomcat在輸出日誌中使用的是UTF-8編碼,而中文Window作業系統使用的是GBK編碼,由於編碼格式不同導致亂碼。
修改方法:
修改conf目錄中的logging.properties檔案重新指定的編碼方式
java.util.logging.ConsoleHandler.encoding = GBK
如何修改Tomcat監聽埠
Tomca預設監聽埠為8080,通過conf目錄中的server.xml檔案來改變Tomcat監聽埠
Tomcat Manager
- Tomcat Manager是Tomcat自帶的web應用,用於管理Tomcat自帶的或者部署在Tomcat上的應用;
- 預設情況屬於禁用狀態,需以使用者角色進行登入並授權才能使用相應的功能;
- 由於Tomcat沒有配置任何預設的使用者,因此需進行使用者配置後才能使用Tomcat Manager
在conf目錄下的tomcat-users.xml檔案中進行角色 配置、使用者名稱及密碼配置
角色分類:
- manager-gui角色---->允許訪問HTML GUI和狀態頁面(即URL路徑為/manager/html/*)
- manager-script角色----> 允許訪問文字介面和狀態頁面(即URL路徑為/manager/text/*)
- manager-jmx角色----> 允許訪問JMX代理和狀態頁面(即URL路徑 為/manager/jmxproxy/*)
- manager- status角色---->僅允許訪問狀態頁面(即URL路徑為/manager/status/*)
配置使用者及角色:
修改conf目錄下的tomcat-users.xml,將下列程式碼新增進配置檔案
<role rolename ="manager-gui"/>
<user username ="tomcat" password ="tomcat" roles="manager-gui" />
通過解除訪問限制實現遠端訪問
修改webapps\manager\META-INF目錄下的context.xml檔案
Tomcat架構
Tomcat工作原理
一個能處理請求與響應的web容器,實現JavaEE平臺下Servlet,JSP等技術規範
Tomcat架構分析:
通過conf/server.xml配置檔案對元件進行修改
Tomcat元件
Server元件
一個server例項就是一個Tomcat,啟動一個server例項就等同於啟動一個Tomcat(即一個JVM程序,由於Tomcat的大部分的程式碼是用java編寫的,而java程式碼執行在JVM當中,因此啟動一個Tomcat就意味著啟動JVM)
server例項監聽在8005埠,等待接收shutdown指令,關閉tomcat的埠,(8080等著處理請求的埠,8005等著接收關閉的埠)
Server的定義不能使用同一個埠,這意味著 如果在同一個物理機上啟動了多個Server例項,必須配置它們使用 不同的埠
1 <Server port="8005" shutdown="SHUTDOWN">
port: 接收shutdown指令的埠,預設為8005;
shutdown:發往此Server用於實現關閉tomcat例項的命令字元 串,預設為SHUTDOWN;
Service元件
解決連結器與請求之間的對應關係,一個或多個Connector可以與一個Engine相對應(Service元件可以包含一個引擎,一個或多個聯結器)
每個聯結器通過一個特定的埠和協議接收請求並將其轉發至關聯的引擎進行處理
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Service name="Catalina">
name:此服務的名稱,預設為Catalina;
Connector元件
支援處理不同請求的元件,一個引擎可以有一個或多個聯結器,以 適應多種請求方式。預設只開啟了處理Http協議的聯結器。如果需 要使用其他協議,需要在Tomcat中配置該協議的聯結器。
在Tomcat中聯結器型別通常有4種:
- HTTP聯結器
- SSL聯結器
- AJP 1.3聯結器
- proxy聯結器
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- port:監聽的埠
- protocol:聯結器使用的協議,預設為HTTP/1.1;
- connectionTimeout:等待客戶端傳送請求的超時時間,單位為毫 秒;
- redirectPort:如果某聯結器支援的協議是HTTP,當接收客戶端發 來的HTTPS請求時,則轉發至此屬性定義的埠;
- maxThreads:支援的最大併發連線數,預設為200個;
Engine元件
Engine是Servlet處理器的一個例項,即servlet引擎,定義在 server.xml中的Service標籤中。
Engine需要defaultHost屬性來為其定義一個接收所有發往非明確定義虛擬主機的請求的Host元件。(一個host元件對應一個虛擬主機)
<Engine name="Catalina" defaultHost="localhost">
<!--name是元件的名稱-->
Host元件
用於在Tomcat中配置虛擬主機
虛擬主機(英語:virtual hosting)或稱共享主機(shared web hosting),又稱虛擬伺服器,是一種在單一主機或主機群上,實現 多網域服務的方法,可以執行多個網站或服務的技術。
Host元件位於Engine容器中,用於接收請求並進行相應處理的虛擬主機。
通過該容器可以執行Servlet或者JSP來處理請求。
- name:虛擬主機的名稱,Tomcat通過在請求URL中的域名與 name中的值匹配,用於查詢能夠處理該請求的虛擬主機。如果未 找到則交給在Engine中defaultHost指定的主機處理;
- appBase:此Host的webapps目錄,即指定存放web應用程式的目錄的路徑;
- autoDeploy:在Tomcat處於執行狀態時放置於appBase目錄中的應用程式檔案是否自動進行
- deploy;預設為true;
- unpackWARs:在啟用此webapps時是否對WAR格式的歸檔檔案先 進行展開;預設為true;
Context元件
Context是Host的子元件,代表指定一個Web應用,它執行在某個 指定的虛擬主機(Host)上;每個Web應用都是一個WAR檔案,或 檔案的目錄。
<Context path="/test" docBase="D:\bjsxt\itbaizhan.war" />
- path:context path既瀏覽器訪問專案的訪問路徑。
- docBase:相應的Web應用程式的存放位置;也可以使用相對路徑,起始路徑為此Context所屬Host中appBase定義的路徑;
如何配置虛擬主機
什麼是虛擬主機:在一個物理機中,通過特定的軟體去虛擬化出多個主機
建立頁面
webapps1/a/index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> BJSXT </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> Welcome to BJSXT </BODY> </HTML>
webapps2/a/index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> ITBZ </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> Welcome to ITBZ </BODY> </HTML>
修改server.xml新增Host配置
<Host name="bjsxt.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.Access LogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> <Host name="itbz.com" appBase="webapps2" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.Access LogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host>
修改windows的Host檔案
完成IP與域名的繫結
Host檔案的位置
C:\Windows\System32\drivers\etc
修改內容
127.0.0.1 itbz.com
127.0.0.1 bjsxt.com
以上部分圖片來源: https://www.itbaizhan.com/