Tomcat9.x配置規范


1. Tomcat9.X使用

tomcat 有兩個版本,壓縮版與安裝版

壓縮版:簡單方便,官網下載下來后直接解壓后就可以使用了。啟動要通過命令去啟動。

安裝版:需安裝,安裝后會自動注冊為服務,可在服務中設置開機自啟動。

2. tomcat目錄結構

 

(1)bin:主要用來存放命令,.bat是windows下,.sh是Linux下

2)conf:主要用來存放tomcat的一些配置文件

(3)lib:存放tomcat依賴的一些jar包

4)logs:存放tomcat在運行時產生的日志文件

5)temp:存放運行時產生的臨時文件

(6)webapps:存放應用程序

7)work:存放tomcat運行時編譯后的文件,比如JSP編譯后的文件

3. tomcat三種部署方式

第一種:直接將 web 項目文復制到tomcat的webapps目錄中。

第二種:在本地tomcat的conf目錄中,新建Catalina/localhost目錄(這里要注意文件名的大小寫),然后在該目錄下新建一個xml文件,名字不可以隨意取,要和path后 的名字一致,我這里就應該是jstore.xml文件,它的具體內容為:

<Context docBase="C:\work\jstore\web" path="/jstore" reloadable="true"/>

第三種: 在tomcat中的conf目錄下的server.xml文件中,在<Host/>節點中添加一個context,具體為:

 

4. tomcat配置與優化

4.1. Connector連接器,主要負責Tomcat與客戶端的通訊, /conf/server.xml文件中

Connector默認配置,如圖

 

Connector參數配置與優化說明

 

4.2. Protocol線程協議配置:

HTTP/1.1:默認值,使用的協議與Tomcat版本有關。在Tomcat9中,默認自動選取使用NIO或APR(如果找到APR需要的本地庫,則使用APR,否則使用NIO)

org.apache.coyote.http11.Http11Protocol:BIO

org.apache.coyote.http11.Http11NioProtocol:NIO

org.apache.coyote.http11.Http11Nio2Protocol:NIO2

org.apache.coyote.http11.Http11AprProtocol:APR

大多數情況下性能比較apr >nio>bio

配置方式,如圖

 

4.3. Connector線程池配置:

 

 

 

 

 

Executor的主要屬性包括:

name:該線程池的標記

maxThreads:線程池中最大活躍線程數,默認值200(Tomcat7和8都是)

minSpareThreads:線程池中保持的最小線程數,最小值是25

maxIdleTime:線程空閑的最大時間,當空閑超過該值時關閉線程(除非線程數小於minSpareThreads),單位是ms,默認值60000(1分鍾)

daemon:是否后台線程,默認值true

threadPriority:線程優先級,默認值5

namePrefix:線程名字的前綴,線程池中線程名字為:namePrefix+線程編號

4.4. jvm參數配置 

Windows:

修改文件:bin/catalina.bat,設置參數(寫在第一行)

set JAVA_OPTS=-Xms2048m -Xmx2048m -Xss1024K -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m

 

查看Server Status

 

Linux:

修改bin/catalina.sh文件參數(寫在第一行)

JAVA_OPTS=-Xms2048m -Xmx2048m -Xss1024K -XX:MetaspaceSize=512m

-XX:MaxMetaspaceSize=512m

參數說明:

1、 file.encoding 默認文件編碼

2、 -Xmx1024m  設置JVM最大可用內存為1024MB

3、 -Xms1024m  設置JVM最小內存為1024m

4、 -XX:NewSize  設置年輕代大小

5、 XX:MaxNewSize 設置最大的年輕代大小

6、 -XX:PermSize  設置永久代大小

7、 -XX:MaxPermSize 設置最大永久代大小

8、 -XX:NewRatio=4:設置年輕代(包括Eden和兩個Survivor區)與終身代的比值(除去永久代)。設置為4,則年輕代與終身代所占比值為1:4,年輕代占整個堆棧的1/5

9、 -XX:+DisableExplicitGC這個將會忽略手動調用GC的代碼使得 System.gc()的調用就會變成一個空調用,完全不會觸發任何GC

4.5. Tomcatweb.xml配置

應用程序運行時最終會加載conf/web.xml和應用的web.xml的合集

每一個web應用最終是被發布到Tomcat的webappes目錄下,Tomcat是它們的運行環境。可以理解為Tomcat的web.xml文件是每一個web應用的web.xml的父文件,Tomcat將每個應用的公共配置提取出來放在conf目錄下的web.xml中,每個應用的個性配置放在自己的web.xml文件

1.指定歡迎頁面,在應用的web.xml中如果沒有對<welcome-file-list>進行覆蓋,那么默認主頁為index.html、index.html、index.jsp

 

2.設置session的存活時間,默認30分鍾

 

3. 設置過濾器,過濾所有資源

 

4.定義了WEB應用的名字

 

5. 返回特定HTTP狀態代碼時,或者特定類型的異常被拋出時,能夠制定將要顯示的頁面

 

6.配置servlet初始化參數

 

servlet 配置Servlet

servlet-name 定義Servlet的名字

servlet-class 指定實現這個servlet的類

init-param 定義Servlet的初始化參數和參數值,可有多個init-param

load-on-startup 指定當Web應用啟動時,裝載Servlet的次序,當值為正數或零時,Servlet容器先加載數值小的servlet,再依次加載其他數值大的servlet

 

 

4.6. Logs目錄默認日志文件

tomcat  有五類日志 :catalina、localhost、manager、admin、host-manager

1.catalina.out

即標准輸出和標准出錯,所有輸出到這兩個位置的都會進入catalina.out,這里包含tomcat運行自己輸出的日志以及應用里向console輸出的日志。默認這個日志文件是不會進行自動切割的,我們需要借助其他工具進行切割(注意:catalina.out文件如果過大會影響)

2. catalina.{yyyy-MM-dd}.log

這個主要是記錄tomcat啟動時候的信息,類似於我們在eclipse中啟動服務的時候在控制台看到的信息。在里面可以看到啟動的JVM參數以及操作系統等日志信息。如果沒有使用log4j等日志機制,系統的的錯誤信息與打印語句也在這個日志文件中記錄。(linux下所有的日志都在catalina.out中)

3.host-manager.日期.log

放tomcat的自帶的manager項目的日志信息的

4. localhost.{yyyy-MM-dd}.log

主要是應用初始化(listener, filter, servlet)未處理的異常最后被tomcat捕獲而輸出的日志,它也是包含tomcat的啟動和暫停時的運行日志,但它沒有catalina.2018-09-19.log 日志全。它只是記錄了部分日志

5.localhost_access_log.日期.txt

是存放訪問tomcat的請求的所有地址以及請求的路徑、時間,請求協議以及返回碼等信息(重要)

6.manager.YYYY-MM-DD.log

tomcat manager項目專有的日志文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM