1.背景介紹
tomcat:Tomcat服務(wù)器是一個免費的開放源代碼的Web應(yīng)用服務(wù)器辟癌。Tomcat是Apache軟件基金會的Jakarta項目中的一個核心項目寒屯,由Apache、Sun和其他一些公司及個人共同開發(fā)而成黍少。
是一個開源的servlet容器寡夹,它為基于Java的web容器,Jetty是使用Java語言編寫的厂置,它的API以一組JAR包的形式發(fā)布菩掏。開發(fā)人員可以將Jetty容器實例化成一個對象,可以迅速為一些獨立運行的Java應(yīng)用提供網(wǎng)絡(luò)和web連接昵济。
server智绸,對servlet和JSP提供了良好的支持,性能也比較優(yōu)良访忿,resin自身采用JAVA語言開發(fā)传于。
2.知識剖析
怎么樣分別在tomcat、jetty醉顽、resin部署war
如何自己指定目錄
tomcat
啟動文件在bin下的startup.bat
在Tomcat的配置文件中,一個Web應(yīng)用就是一個特定的Context平挑,可以通過在server.xml中新建Context里部署一個JSP應(yīng)用程序游添。打開server.xml文件,在Host標簽內(nèi)建一個Context通熄,內(nèi)容如下唆涝。
在tomcat中的conf目錄中,在server.xml中的唇辨,節(jié)點中添加:
service.xml
說明:
path是虛擬路徑廊酣;相當于java中的
@RequestMapping接口
docBase是應(yīng)用程序的物理路徑;即war包所在地
是實際路徑赏枚,一般為絕對磁盤路徑亡驰,也可以寫相對路徑晓猛,相對路徑是相對于tomcat安裝目錄的webapps目錄,通常設(shè)置虛擬目錄的目的是將tomcat的安裝和項目的保存分開凡辱,所以這里建議使用磁盤絕對路徑戒职,并且這個磁盤路徑不是在tomcat目錄下。
workDir是這個應(yīng)用的工作目錄透乾,存放運行時生成的與這個應(yīng)用相關(guān)的文件洪燥;
是tomcat運行是對JSP文件做編譯后的文件,這個文件最好也是分開
debug則是設(shè)定debug level,? 0表示提供最少的信息乳乌,9表示提供最多的信息
privileged設(shè)置為true的時候捧韵,才允許Tomcat的Web應(yīng)用使用容器內(nèi)的Servlet
reloadable如果為true,則tomcat會自動檢測應(yīng)用程序的/WEB-INF/lib和/WEB-INF/classes目錄的變化汉操,自動裝載新的應(yīng)用程序再来,可以在不重起tomcat的情況下改變應(yīng)用程序,實現(xiàn)熱部署
resin
Resin啟動應(yīng)用時客情,跟Tomcat一樣會將jsp編譯成可執(zhí)行文件其弊,保存到應(yīng)用的WEB-INF/work目錄下,tem是臨時文件夾膀斋,也是在應(yīng)用的WEB-INF/temp目錄下梭伐,這里可以修改指向到其他的地方。
conf下的resin.xml
jetty
根目錄的start.in
擴展思考
是否需要jdk
tomcat仰担,打不開
resin糊识,無法生產(chǎn)work文件,無法訪問網(wǎng)頁
jetty摔蓝,無影響
更多討論
如何優(yōu)化tomcat
優(yōu)化配置tomcat
你使用過tomcat的話赂苗,簡單的說就是“內(nèi)存溢出”.?通常情況下,這種問題出現(xiàn)在實際的生產(chǎn)環(huán)境中.產(chǎn)生這種問題的原因是tomcat使用較少的內(nèi)存給進程,通過配置TOmcat的配置文件(Windows?下的catalina.bat或Linux下的catalina.sh)
第一步? –?提高JVM棧內(nèi)存
-Xms – 指定初始化時化的棧內(nèi)存
-Xmx –?指定最大棧內(nèi)存
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms1024m -Xmx1024m
-XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m
-XX:MaxPermSize=512m -XX:+DisableExplicitGC"
第三步 – 線程池設(shè)置
線程池指定Web請求負載的數(shù)量贮尉,因此拌滋,為獲得更好的性能這部分應(yīng)小心處理〔卵瑁可以通過調(diào)整連接器屬性“maxThreads”完成設(shè)置败砂。maxThreads的值應(yīng)該根據(jù)流量的大小,如果值過低魏铅,將有沒有足夠的線程來處理所有的請求昌犹,請求將進入等待狀態(tài),只有當一個的處理線程釋放后才被處理览芳;如果設(shè)置的太大斜姥,Tomcat的啟動將花費更多時間。
<Connector port="9207"
?protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
maxThreads值設(shè)定為“250”,這指定可以由服務(wù)器處理的并發(fā)請求的最大數(shù)量铸敏。如果沒有指定缚忧,這個屬性的默認值為“200”。任何多出的并發(fā)請求將收到“拒絕連接”的錯誤提示搞坝,直到另一個處理請求進程被釋放
maxSpareThreads Tomcat連接器的最大空閑 socket(套接字) 線程數(shù)
minSpareThreads Tomcat連接器的最小空閑 socket(套接字) 線程數(shù)
網(wǎng)絡(luò)上的兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換搔谴,這個連接的一端稱為一個socket。
建立網(wǎng)絡(luò)通信連接至少要一對端口號(socket)桩撮。socket本質(zhì)是編程接口(API)敦第,對TCP/IP的封裝,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口,這就是Socket編程接口;HTTP是轎車暮刃,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動機右钾,提供了網(wǎng)絡(luò)通信的能力
minProcessors 服務(wù)器創(chuàng)建時的最小處理線程數(shù)
maxProcessors 服務(wù)器同時最大處理線程數(shù)
enableLookups
是否反查域名,取值為:true或false旱爆。為了提高處理能力舀射,應(yīng)設(shè)置為false
可以由ip查到域名
compression
當文件的大小大于等于500bytes時才會壓縮。如果當文件達到了大小但是卻沒有被壓縮怀伦,那么設(shè)置屬性compression="on"脆烟。否則Tomcat默認設(shè)置是“off”。
compression 打開壓縮功能
compressionMinSize 啟用壓縮的輸出內(nèi)容大小房待,這里面默認為2KB
compressableMimeType 壓縮類型
connectionTimeout 連接超時
connectionTimeout
網(wǎng)絡(luò)連接超時邢羔,單位:毫秒。設(shè)置為0表示永不超時桑孩,這樣設(shè)置有隱患的拜鹤。通常可設(shè)置為30000毫秒流椒。
不要遺漏URIEncoding=”GBK”敏簿,能使頁面url傳遞中文參數(shù)時保證正確。
acceptAccount 監(jiān)聽端口隊列最大數(shù)宣虾,滿了之后客戶請求會被拒絕(不能小于maxSpareThreads )
redirectPort 在需要基于安全通道的場合惯裕,把客戶請求轉(zhuǎn)發(fā)到基于SSL 的 redirectPort 端口
redirectPort 端口:配置好SSL之后可以用過https協(xié)議通信
disableUploadTimeout
上傳時是否使用超時機制
技能樹.IT修真院
“我們相信人人都可以成為一個工程師,現(xiàn)在開始安岂,找個師兄,帶你入門帆吻,掌控自己學(xué)習(xí)的節(jié)奏域那,學(xué)習(xí)的路上不再迷茫”。
這里是技能樹.IT修真院次员,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線败许,學(xué)習(xí)透明化,成長可見化淑蔚,師兄1對1免費指導(dǎo)市殷。快來與我一起學(xué)習(xí)吧~