2021-02-28 分類: 網(wǎng)站建設
1. WebLogic:是BEA公司的產(chǎn)品
2. WebSphereAS:是IBM公司的產(chǎn)品
3. JBossAS:紅帽公司的產(chǎn)品
4. Tomcat服務器:
Sun公司推出的小型Servlet/JSP調(diào)試工具的基礎上發(fā)展起來的一個Servlet容器,Tomcat本身完全用java語言編寫,所以tomcat的運行需要java的支持,所以要先安裝JDK,才能運行。
1. Tomcat的目錄層次結構
a) bin:存放啟動和關閉Tomcat的腳本文件
b) conf: 存放Tomcat服務器的各種配置文件
c) lib:存放tomcat服務器支撐的jar包
d) logs:存放Tomcat的日志文件
e) temp: 存放Tomcat運行時產(chǎn)生的臨時文件
f) webapps:web應用雖在目錄,即供外界訪問的web資源的存放目錄
g) work:Tomcat的工作目錄
2. JavaWeb應用的組成結構
mail---------------------------Web應用所在目錄
|----html、jsp、css、js等文件,根目錄下的文件外界可以直接訪問
|----WEB-INF目錄
|---------classes目錄(java類)
|---------lib目錄(java類運行所需的jar包)
|---------web.xml(web應用的配置文件)
WEB-INF 這個目錄下的文件外界無法直接訪問,由web服務器負責調(diào)用
3. JavaWeb應用的發(fā)布
開放式目錄方式:打包war方式: 使用 Jar -cvf *.war .
4. Tomcat的組成結構
Tomcat本身由一系列可配置的組件構成,其中核心組件是Servlet容器組件,它是所有其他Tomcat組件的頂層容器。每個組件都可以在Tomcat安裝目錄/conf/server.xml文件中進行配置,每個Tomcat組件在server.xml文件中對應一種配置元素。下面用XML的形式展示各種Tomcat組件之間的關系。
5. Tomcat體系結構
6. 虛擬目錄的映射方式
從Tomcat6開始,Tomcat支持自動映射,即tomcat服務器會自動管理webapps目錄下的所有web應用,并把它映射成虛擬目錄,換句話說,只需把web應用放在webapps目錄下,不需要配置Context,外界可以直接訪問
但是如果你不想項目放在webapps下,而是放在其他地方,還是需要配置Context,比如我的tomcat在C盤,我的項目在D盤,則需要在Host下增加如下虛擬目錄映射語句
7. Context元素配置
tomcat在加載一個web應用時,會一次按照以下五種方式查找web應用中的元素,優(yōu)先級一次降低,直到找到為止
1):到Tomcat安裝目錄/conf/Context.xml文件中查找元素。
2):到Tomcat安裝目錄/conf/[enginename]/[hostname]/context.xml.default文件中查找元素。
[enginename]:表示的name屬性
[hostname]:表示屬性
3):到Tomcat安裝目錄/conf/[enginename]/[hostname]/[contextpath].xml文件中查找元素
[contextpath]:表示單個Web應用的URL入口
4):到Web應用的META-INF/context.xml文件中查找元素
5):到Tomcat安裝目錄/conf/server.xml文件中查找元素。只適用于單個Web應用
8. 將項目部署為Tomcat默認應用
即訪問 http://localhost:8080 時出來的是tomcat自帶的歡迎頁面,改為登錄到自己的項目主頁
9. Context元素的屬性
path: 指定訪問該Web應用的URL入口
docBase: 指定Web應用的文件路徑,可以寫絕對路徑,也可以寫相對于appBase屬性的相對路徑
className:指定實現(xiàn)Context組件的Java類的名字,這個類必須實現(xiàn) org.apache.catalina.Contex接口,該屬性默認值為org.apache.catalina.core.StandardContext(不建議大家改動)
reloadable:如果為true,Tomcat服務器在運行狀態(tài)下回監(jiān)視在WEB-INF/classes和WEB-INF/lib目錄下的class文件的改動,以及監(jiān)視Web應用的WEB-INF/web.xml文件的改動,如果檢測到有更新,服務器會自動更新加載web應用。其默認值為false。在開發(fā)和調(diào)試階段,將其改為true,一般像Eclipse等開發(fā)環(huán)境都會默認改為true。在正式發(fā)布階段,應將其該為false,可以降低Tomcat的運行負荷,提高Tomcat的運行性能
在一般情況下,元素都會使用默認的標準Context組件,即className屬性采用默認值org.apache.catalina.core.StandardContext,它除了擁有上面介紹到的屬性外,還有自身專有的屬性:
cachingAllowed:是否允許啟用靜態(tài)資源(HTML、圖片、聲音等)的緩存。默認值為true。
cacheMaxSize:設置靜態(tài)資源緩存的大值,單位為K。
workDir:指定Web應用的工作目錄。
uppackWAR:如果為true,會把war文件展開為開放目錄后再運行。為false,直接運行war文件。默認值為true。
10. web.xml文件
該文件必須放在/WEB-INF目錄下,但是從7.0版本開始,Tomcat可以不使用web.xml文件,而是使用注解方式。
1、內(nèi)存使用配置
Tomcat是依賴于JVM的,所以Tomcat的使用內(nèi)存配置實質(zhì)上是JVM的內(nèi)存配置
在/bin目錄下的catalina.bat可以直接通過Tomcat設置JVM內(nèi)存參數(shù),windows下
打開catalina.bat文件,在大概中間的位置,找到
set "JAVA_OPTS=%JAVA_OPT% -server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -Djava.awt.headless=true"
通過內(nèi)存設置充分利用服務器內(nèi)存
-server: 模式啟動應用慢,但是極大程度提高運行性能
-Xms2048m -Xmx2048m: 設置的是堆內(nèi)存
java8開始,PermSize被MetaspaceSize代替,MetaspaceSize共享heap,不會再有java.lang.OutOfMemoryError:PermGen space,可以不設置
Headless=true: 適用于Linux系統(tǒng),與圖形操作有關,如生成驗證碼含義是當前的是無顯示器的服務器,應用中如果獲取系統(tǒng)顯示有關的參數(shù)會拋出異常,windows系統(tǒng)可不用設置
可通過jmap -heap process_id查看設置是否成功
2、大連接數(shù)配置(并發(fā)能力)
在/conf/server.xml里進行配置
在屬性中
將protocol屬性改為
"org.apache.coyote.http11.Http11NioProtocol",NIO模型的效率更高
加入
maxThreads="500" //當前可以同時處理的大用戶訪問數(shù)
minSpareThreads="100" //最小空閑線程連接數(shù),用于優(yōu)化線程池
maxSpareThreads="200"
acceptCount="200" //當所有的線程以分配,仍然允許連接進來,但是出于等待狀態(tài)的用戶數(shù)。等待線程數(shù)+工作線程數(shù)=總的可大連接數(shù),如果超過此數(shù),新的連接將不會被接受,就會產(chǎn)生一個http錯誤
enableLookups="false"http://是否允許DNS反查,如果為true,request.getRemoteHost會執(zhí)行DNS查找,反向解析ip對應域名或主機名,當沒有這樣需要的時候,可以將這個功能關閉,在一定程度上提高了Tomcat服務器的性能
負載均衡是提高應用負載量和容錯的有效手段,可以結合Nginxs與Tomcat實現(xiàn),Nginx是一款性能優(yōu)異的反向代理服務器
1、負載均衡配置實現(xiàn)
反向代理原理示意圖
負載均衡示意圖
負載均衡策略:
Nginx 提供輪詢(round robin)、用戶IP哈希(client IP)和指定權重 3 種方式
2、負載均衡時Session的處理策略
Session是Tomcat服務器上的內(nèi)存空間,如果一個用戶發(fā)出多個請求,卻發(fā)到了多個tomcat服務器中,那么就會出現(xiàn)Session不同步的問題
memcached緩存共享方案基本原理
粘性Session與非粘性Session方式:
需要一些工具jar包,官網(wǎng)有目錄和下載連接
在/conf/context.xml中進行配置,全局有效
3、集群環(huán)境中應用代碼應注意的問題
一般高并發(fā)的網(wǎng)站上,資源類的文件,如js,css,圖片通常是由靜態(tài)服務器處理,Nginx處理靜態(tài)文件效率就非常高,而tomcat處理靜態(tài)文件是它很大的一個弱勢,tomcat只負責動態(tài)請求的處理。那么編碼的時候就要考慮靜態(tài)資源最后可能要被拿出去,地址會有變化,所以在開發(fā)的時候應該規(guī)劃訪問地址,保持大靈活性。
分享名稱:Tomcat服務器常用配置詳解
文章URL:http://m.rwnh.cn/news10/103510.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、外貿(mào)網(wǎng)站建設、關鍵詞優(yōu)化、靜態(tài)網(wǎng)站、虛擬主機、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容