欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Tomcat學(xué)習(xí)總結(jié)1

系統(tǒng) 2057 0

Tomcat是一個(gè)免費(fèi)的開(kāi)源的Serlvet容器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其它一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在 Tomcat中得到體現(xiàn)。

盡管Tomcat也可以作為獨(dú)立的Java Web服務(wù)器,但在對(duì)靜態(tài)資源(HTML、圖像文件等)的處理速度,Web服務(wù)器管理等方面都不如Apache、IIS服務(wù)器等其他專業(yè)的HTTP服務(wù)器,因此在實(shí)際應(yīng)用中,常常把Tomcat與其他的HTTP服務(wù)器集成使用。對(duì)于不支持Servlet/JSP的HTTP服務(wù)器,可以通過(guò)Tomcat服務(wù)器來(lái)運(yùn)行Servlet/JSP組件。

當(dāng)Tomcat與其他HTTP服務(wù)器集成時(shí),Tomcat服務(wù)器的工作模式通常為進(jìn)程外的Servlet容器,Tomcat服務(wù)器與其他HTTP服務(wù)器之間通過(guò)專門(mén)的插件來(lái)通信。

Tomcat的目錄結(jié)構(gòu)

    
      $CATALINA_HOME   Tomcat安裝目錄下面有

    
  

  • bin : 啟動(dòng)和關(guān)閉Tomcat腳本文件。
  • conf : Tomcat服務(wù)器的各種配置文件,包括:server.xml、web.xml、catalina.policy等。
  • lib : Tomcat服務(wù)器和所有web應(yīng)用可以訪問(wèn)的jar包。
  • logs : Tomcat的日志文件。
  • webapps : Tomcat自帶的兩個(gè)web應(yīng)用:admin和manager,用來(lái)管理Tomcat的Web服務(wù)。
  • work : JSP經(jīng)過(guò)Tomcat編譯后生成的Servlet。
  • temp : Tomcat運(yùn)行時(shí)的臨時(shí)文件。

Tomcat層次結(jié)構(gòu)

Tomcat服務(wù)器由一系列可配置組件構(gòu)成,其中核心組件是Catalina Servlet容器,它是其他所有Tomcat組件的頂層容器。在server.xml配置文件中,各組件之間關(guān)系如下

<Server>................................Server層

<Service>............................Service層

<Connector/>

<Engine>..........................Engine層

<Host>.........................Host層

????????<Context/>...............Context層

</Host>

</Engine>

</Service>

<Server>

Server層

????對(duì)應(yīng)Server組件,表示整個(gè)Tomcat(Catalina Servlet容器),它處于Tomcat頂層,可以包含一個(gè)或多個(gè)Service層。

Service層

????對(duì)應(yīng)Service組件,是Server層中的一個(gè)邏輯功能層,包含一個(gè)Engine層,以及一個(gè)或多個(gè)Connector,Service組件將一個(gè)或多個(gè)Connector組件綁定到Engine層上,Connector組件偵聽(tīng)端口,獲得用戶請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)到Engine層處理,同時(shí)把處理結(jié)果轉(zhuǎn)發(fā)給用戶,從而實(shí)現(xiàn)一個(gè)特定的功能。

Engine層

????對(duì)應(yīng)Engine組件,負(fù)責(zé)請(qǐng)求分發(fā)處理,可以連接多個(gè)Connector,它從Connector接收請(qǐng)求后,解析出可以完成用戶請(qǐng)求的URL,根據(jù)URL可以把請(qǐng)求匹配到正確的Host上,當(dāng)Host處理完用戶請(qǐng)求后,Engine層把結(jié)果返回給適合連接器,再由連接器傳輸給用戶。

Host層

????對(duì)應(yīng)Host組件,表示一個(gè)虛擬主機(jī),一個(gè)Engine層可以包含多個(gè)Host層,每個(gè)Host層可以包含一個(gè)或多個(gè)Context層,對(duì)應(yīng)不同的web應(yīng)用。

Context層

????對(duì)應(yīng)Context組件,代表某個(gè)虛擬主機(jī)上的實(shí)際目錄或一個(gè)WAR,即單個(gè)Web應(yīng)用程序,它運(yùn)行在特定的虛擬主機(jī)中,使用最為頻繁。一個(gè)Host層包含多個(gè)Context層,每一個(gè)Context都有唯一的路徑,Host層接到請(qǐng)求后,根據(jù)用戶請(qǐng)求的URL,將請(qǐng)求定位到Context層。

Tomcat常用配置文件

server.xml:Tomcat中最重要的配置文件,定義了tomcat的體系結(jié)構(gòu),包括連接器端口、連接數(shù)、集群、虛擬目錄、訪問(wèn)日志等的設(shè)置。

context.xml:全局context的配置文件,包括JNDI等信息的配置。

tocmat-users.xml:Tocmat管理員身份的配置文件,關(guān)鍵是設(shè)置管理員賬號(hào)的密碼。

logging.properties:Tocmat日志配置文件,可以修改默認(rèn)的Tocmat日志路徑和名稱。

Tomcat JVM參數(shù)調(diào)整

根據(jù)系統(tǒng)物理內(nèi)存大小合理設(shè)置下列五個(gè)參數(shù)catalina.sh/catalina.bat

????-server -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m

????一般情況下,設(shè)置-Xms=-Xmx、-XX:PermSize=-XX:MaxPermSize,正式服務(wù)器必須設(shè)置以上參數(shù),以盡可能壓榨服務(wù)器性能。相關(guān)參數(shù)取值需要根據(jù)實(shí)際情況考慮,不要超過(guò)(物理內(nèi)存-其他程序內(nèi)存)的80%即可。

沒(méi)有特殊理由,盡量不要對(duì)上述五個(gè)參數(shù)外的其他JVM參數(shù)進(jìn)行設(shè)置:

無(wú)法保證各種操作系統(tǒng)平臺(tái)的可移植性

過(guò)度干涉JVM內(nèi)存管理會(huì)導(dǎo)致無(wú)法預(yù)料的后果

如果在Windows平臺(tái)上將解壓版的Tomcat安裝為服務(wù),可以通過(guò)修改批處理文件$CATALINA_HOME/bin/service.bat對(duì)JVM參數(shù)進(jìn)行調(diào)整。

Tomcat日志配置

Tomcat日志信息包括 訪問(wèn)日志和運(yùn)行日志。

訪問(wèn)日志用于對(duì)用戶訪問(wèn)系統(tǒng)的行為進(jìn)行跟蹤記錄,主要記錄用戶訪問(wèn)的時(shí)間、對(duì)應(yīng)的IP地址、訪問(wèn)的資料等信息。記錄訪問(wèn)日志主要是基于對(duì)系統(tǒng)安全的考慮,對(duì)系統(tǒng)中一些重要、敏感信息的資料訪問(wèn)歷史進(jìn)行記錄,便于對(duì)資源的訪問(wèn)歷史進(jìn)行追蹤,對(duì)于敏感信息未經(jīng)授權(quán)訪問(wèn)等進(jìn)行事后追查有一定幫助。但記錄訪問(wèn)日志會(huì)對(duì)服務(wù)器性能產(chǎn)生一定的影響,在生產(chǎn)系統(tǒng)中需要慎用。

運(yùn)行日志主要記錄程序運(yùn)行的一些信息,其中的異常錯(cuò)誤信息可以為我們定位錯(cuò)誤。從6.0版本開(kāi)始,Tomcat的日志接口采用是對(duì)Apache Commons Logging日志接口進(jìn)行獨(dú)立封裝,缺省配置下,該日志接口采用硬編碼使用java.util.logging日志框架。

由于Tomcat發(fā)布版本中獨(dú)立封裝的Apache Commons Logging接口并沒(méi)有對(duì)接口完全實(shí)現(xiàn),如果要選擇不同的日志框架就需要將該日志接口替換為完全實(shí)現(xiàn)的版本。

缺省配置下,Tomcat是不記錄訪問(wèn)日志的,可以通過(guò)如下配置允許Tomcat記錄訪問(wèn)日志:

修改$CATALINA_HOME/server.xml,在Host標(biāo)簽下,找到如下配置信息,去掉兩端的注釋就會(huì)啟用訪問(wèn)日志記錄功能:

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>

通過(guò)對(duì)pattern項(xiàng)的修改,可以改變?nèi)罩据敵龅膬?nèi)容。該項(xiàng)值可以為: common 與 combined,對(duì)應(yīng)的日志輸出內(nèi)容如下所示:

common: %h %l %u %t %r %s %b

combined: %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i

pattern 也可以根據(jù)需要自由組合, 例如 pattern="%h %l",對(duì) 于各 fields 字段的含義請(qǐng)參照Tomcat官方文檔。

在不同的環(huán)境下,需要設(shè)置不同的日志級(jí)別,在生產(chǎn)環(huán)境中,為了提高效率和穩(wěn)定性,一般會(huì)將日志級(jí)別設(shè)置為相對(duì)較高的級(jí)別,而開(kāi)發(fā)環(huán)境中為了跟蹤程序流程,可以將日志級(jí)別調(diào)整為較低的級(jí)別。不同日志框架有不同的日志級(jí)別,常用的日志框架對(duì)應(yīng)級(jí)別如下:

Java.util.logging對(duì)應(yīng)的日志級(jí)別由高到低分別為:

severe > warning > info > config > fine > finer > finest

org.apache.log4j對(duì)應(yīng)的日志級(jí)別由高到低分別為:

fatal > error > warn > info > debug > trace

在缺省配置下,Tomcat采用Java.util.logging日志框架,對(duì)應(yīng)的配置文件為$CATALINA_HOME/ logging.properties,常用的日志級(jí)別設(shè)定方法如下:

設(shè)置catalina日志的級(jí)別為:FINE

1catalina.org.apache.juli.FileHandler.level = FINE

禁用catalina日志的輸出:

1catalina.org.apache.juli.FileHandler.level = OFF

設(shè)置catalina所有的日志消息均輸出:

1catalina.org.apache.juli.FileHandler.level = ALL

Log4j是目前應(yīng)用最廣的日志框架,可以使用Log4j替換Tomcat缺省采用的java.util.logging日志框架,步驟如下:

創(chuàng)建log4j配置文件log4j.properties ,保存在$CATALINA_HOME/lib 下。

從Apache官網(wǎng)Log4J項(xiàng)目下載Log4J(1.2版本以后)。

從Apache官網(wǎng)Tomcat項(xiàng)目下載tomcat-juli.jar和tomcat-juli-adapters.jar。

復(fù)制log4j.jar、tomcat-juli-adapters.jar到$CATALINA_HOME/lib下。

用tomcat-juli.jar覆蓋$CATALINA_HOME/bin下的同名文件。

刪除Tomcat的缺省日志配置文件$CATALINA_HOME/conf/ logging.properties,以避免生成一些冗余的空日志文件。

Tomcat URL編碼格式設(shè)置

缺省情況下,如果URL當(dāng)中包含有非英文字符,需要通過(guò)在程序?qū)RL進(jìn)行轉(zhuǎn)碼處理,否則URL中的非英文字符無(wú)法保證正確解析。在無(wú)特殊要求的情況下,需要將URL編碼設(shè)置為和項(xiàng)目統(tǒng)一的編碼格式,目前公司大部分項(xiàng)目都統(tǒng)一采用UTF-8字符編碼方式,示例如下:

<Connector port="8087" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="utf-8" />

Tomcat 常見(jiàn)問(wèn)題總結(jié)

JVM內(nèi)存溢出(OOM),分為堆內(nèi)存溢出和PermGen區(qū)內(nèi)存溢出:

java.lang.OutOfMemoryError: PermGen space

PermGen space(Permanent Generation space),是指內(nèi)存的永久保存區(qū)域,主要用于存放Class和Meta信息的,Class在被Loader時(shí)就會(huì)被放到PermGen space中, 它和存放類實(shí)例(Instance)的Heap區(qū)域不同,GC(Garbage Collection)不會(huì)在主程序運(yùn)行期對(duì)其進(jìn)行清理,所以如果應(yīng)用中有很多CLASS的話,就很可能出現(xiàn)PermGen space錯(cuò)誤。如果加載的Class超過(guò)MaxPermSize,就會(huì)拋出該異常,可以通過(guò)調(diào)整MaxPermSize進(jìn)行解決。

java.lang.OutOfMemoryError: Java heap space

JVM堆是指java程序運(yùn)行過(guò)程中JVM可以調(diào)配使用的內(nèi)存空間。JVM在啟動(dòng)的時(shí)候會(huì)自動(dòng)設(shè)置Heap size的值,其初始空間(-Xms)是物理內(nèi)存的1/64,最大空間(-Xmx)是物理內(nèi)存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項(xiàng)可進(jìn)行設(shè)置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。在JVM中如果98%的時(shí)間是用于GC且可用的Heap size 不足2%的時(shí)候?qū)伋龃水惓P畔ⅰ?

JDK安裝及JAVA_HOME設(shè)置

啟動(dòng)不成功,沒(méi)有日志,一般是JDK安裝不正確或沒(méi)有設(shè)置環(huán)境變量。

大量用戶訪問(wèn)時(shí)瀏覽器沒(méi)有響應(yīng)

并發(fā)線程數(shù)設(shè)置太小,調(diào)整$CATALINA/conf/server.xml中連接器對(duì)應(yīng)的請(qǐng)求處理線程數(shù)。

Tomcat學(xué)習(xí)總結(jié)1


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 色婷婷六月天 | 男女在线免费视频 | 亚洲情av| 国内外成人免费视频 | 香蕉久| 五月天激激婷婷大综合蜜芽 | 欧美日韩免费播放一区二区 | 亚州中文| 九九有点热 | 在线中文字幕日韩 | 亚洲激情视频在线观看 | 久久亚洲热 | 久久99热久久精品23 | 成人免费毛片aaaaaa片 | 久久99精品久久 | 成人免费观看在线网址 | 色男人的天堂久久综合 | 国产1区2| 久久狠狠 | 小优视频污 | 国产激情一级毛片久久久 | 免费黄色在线观看 | 午夜资源站 | 欧美精品在线免费观看 | 黄色影院在线看 | 天干夜天天夜天干天国产电影 | 日韩中文字幕在线观看视频 | 九九视频九九热 | 热久热 | 免费的av | 精品国产乱码久久久久久牛牛 | www.99热| 国产精品免费一区二区三区 | 午夜资源 | 香蕉视频在线播放 | 国产91一区二区三区 | 国产睡熟迷奷系列网站 | 亚洲精品乱码久久久久久蜜桃91 | 精品久久久久久免费影院 | 免费观看的av | 5月激情网|