更新時(shí)間:2020-12-08 17:37:55 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1465次
Tomcat 服務(wù)器作為當(dāng)下最流行的免費(fèi)的開(kāi)放源代碼的Web 應(yīng)用服務(wù)器之一,是開(kāi)發(fā)和調(diào)試JSP 程序的首選。然而對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),在一臺(tái)機(jī)器上配置好Tomcat服務(wù)器的難度還是不低的,本文就來(lái)全面解析常用Tomcat服務(wù)器配置,為大家配置Tomcat服務(wù)器提供一點(diǎn)點(diǎn)便捷。
下面介紹Tomcat服務(wù)器常用7個(gè)配置,其他的配置文件基本不需要我們掌握,也不影響Tomcat服務(wù)器的正常運(yùn)行。
1.目錄結(jié)構(gòu)
/bin:腳本文件目錄。
/common/lib:存放所有web項(xiàng)目都可以訪問(wèn)的公共jar包(使用Common類加載器加載)。
/conf:存放配置文件,最重要的是server.xml。
/logs:存放日志文件。
/server/webapps:來(lái)管理Tomcat-web服務(wù)用的。僅對(duì)TOMCAT可見(jiàn),對(duì)所有的WEB APP都不可見(jiàn)(使用Catalina類加載器加載)。
/shared/lib:僅對(duì)所有WEB APP可見(jiàn),對(duì)TOMCAT不可見(jiàn)(使用Shared類加載器加載)。
/temp:Tomcat運(yùn)行時(shí)候存放臨時(shí)文件用的。
/webapps:web應(yīng)用發(fā)布目錄。
/work:Tomcat把各種由jsp生成的servlet文件放在這個(gè)目錄下。刪除后,啟動(dòng)時(shí)會(huì)自動(dòng)創(chuàng)建。
2.配置文件
server.xml:主要的配置文件。
web.xml:缺省的web app配置,WEB-INF/web.xml會(huì)覆蓋該配置。
server.xml配置
server標(biāo)簽
port:指定一個(gè)端口,這個(gè)端口負(fù)責(zé)監(jiān)聽(tīng)關(guān)閉tomcat的請(qǐng)求。
shutdown:指定向端口發(fā)送的命令字符串。
service標(biāo)簽
name:指定service的名字。
Connector(表示客戶端和service之間的連接)標(biāo)簽
port:指定服務(wù)器端要?jiǎng)?chuàng)建的端口號(hào),并在這個(gè)端口監(jiān)聽(tīng)來(lái)自客戶端的請(qǐng)求。
minProcessors:服務(wù)器啟動(dòng)時(shí)創(chuàng)建的處理請(qǐng)求的線程數(shù)。
maxProcessors:最大可以創(chuàng)建的處理請(qǐng)求的線程數(shù)。
enableLookups:如果為true,則可以通過(guò)調(diào)用request.getRemoteHost()進(jìn)行DNS查詢來(lái)得到遠(yuǎn)程客戶端的實(shí)際主機(jī)名,若為false則不進(jìn)行DNS查詢,而是返回其ip地址。
redirectPort:指定服務(wù)器正在處理http請(qǐng)求時(shí)收到了一個(gè)SSL傳輸請(qǐng)求后重定向的端口號(hào)。
acceptCount:指定當(dāng)所有可以使用的處理請(qǐng)求的線程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理。
connectionTimeout:指定超時(shí)的時(shí)間數(shù)(以毫秒為單位)。
Engine(表示指定service中的請(qǐng)求處理機(jī),接收和處理來(lái)自Connector的請(qǐng)求)標(biāo)簽
defaultHost:指定缺省的處理請(qǐng)求的主機(jī)名,它至少與其中的一個(gè)host元素的name屬性值是一樣的。
Context(表示一個(gè)web應(yīng)用程序,通常為WAR文件,關(guān)于WAR的具體信息見(jiàn)servlet規(guī)范)標(biāo)簽
path:表示此web應(yīng)用程序的url的前綴,這樣請(qǐng)求的url為http://localhost:8080/path/****。
debug:與這個(gè)Engine關(guān)聯(lián)的Logger記錄的調(diào)試信息的詳細(xì)程度。數(shù)字越大,輸出越詳細(xì)。如果沒(méi)有指定,缺省為0。
host(表示一個(gè)虛擬主機(jī))標(biāo)簽
name:指定主機(jī)名。。
Logger(表示日志,調(diào)試和錯(cuò)誤信息)標(biāo)簽
className:指定logger使用的類名,此類必須實(shí)現(xiàn)org.apache.catalina.Logger接口。
3 .配置虛擬目錄
1)直接部署到webapps目錄下面訪問(wèn)。
2)修改conf/server.xml文件。
3)當(dāng)項(xiàng)目沒(méi)有放在webapps目錄下時(shí),可以在conf/Catalina/localhost新建一個(gè)XXX.XML文件。里面加入<Context docBase="E:webdemo" debug="0" reloadable="true" />。
4 .配置連接數(shù)
maxThreads:Tomcat使用線程來(lái)處理接收的每個(gè)請(qǐng)求。這個(gè)值表示Tomcat可創(chuàng)建的最大的線程數(shù)。
acceptCount:指定當(dāng)所有可以使用的處理請(qǐng)求的線程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理。
minSpareThreads:Tomcat初始化時(shí)創(chuàng)建的線程數(shù)。
maxSpareThreads:一旦創(chuàng)建的線程超過(guò)這個(gè)值,Tomcat就會(huì)關(guān)閉不再需要的socket線程。
enableLookups:是否反查域名,取值為:true或false。為了提高處理能力,應(yīng)設(shè)置為false
connectionTimeout:網(wǎng)絡(luò)連接超時(shí),單位:毫秒。設(shè)置為0表示永不超時(shí),這樣設(shè)置有隱患的。默認(rèn)可設(shè)置為20000毫秒。
web server允許的最大連接數(shù)還受制于操作系統(tǒng)的內(nèi)核參數(shù)設(shè)置,通常Windows是2000個(gè)左右,Linux是1000個(gè)左右。
5.配置內(nèi)存大小
修改bin/catalina.bat中的set CATALINA_OPTS=-Xms64m -Xmx128m。
Xms指最小內(nèi)存,Xmx指最大內(nèi)存。
6.安全配置
1)將<Server port="8005" shutdown="SHUTDOWN">SHUTDOWN修改為其他一些字符串。否則就容易被人給停止掉了。
2)對(duì)應(yīng)tomcat3.1中,屏蔽目錄文件自動(dòng)列出
修改conf/web.xml中的
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value><!-- 改成false -->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
3)訪問(wèn)日志設(shè)置
在server.xml中加入
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
這樣訪問(wèn)日志會(huì)記錄到Logs中。
4)修改用戶名、密碼
conf/tomcat-users.xml
5)屏蔽后臺(tái)管理入口
方法一:從控制用戶和權(quán)限著手。廢掉要管理權(quán)限的用戶就可以了。
方法二:將conf/Catalina/localhost/manager.xml改名。
6)配置403,404,500錯(cuò)誤頁(yè)面
默認(rèn)情況下,報(bào)出HTTP錯(cuò)誤的時(shí)候會(huì)暴露tomcat版本號(hào)。如果不想暴露的話,就需要重新定義錯(cuò)誤跳轉(zhuǎn)頁(yè)面。
<error-page>
<error-code>401</error-code>
<location>/401.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
7.配置Log4j日志記錄
項(xiàng)目中拋出的異常,拋到tomcat中的異常會(huì)被tomcat記錄下來(lái),存放至logs/localhost.yyyy-MM-dd.log文件中。
平時(shí)我們?cè)陧?xiàng)目中使用的log4j記錄日志跟tomcat是沒(méi)有任何關(guān)系的,是獨(dú)立的一個(gè)程序,記錄的文件是自定義的。
我們可以在tomcat中定義一個(gè)log4j的公共日志處理方式,這樣在項(xiàng)目中就不需要在定義log4j的配置了。
1)將log4j-1.2.15.jar加入到commonlib目錄。
2)將log4j.properties加入到commonclasses目錄。
總體來(lái)說(shuō),Tomcat服務(wù)器配置還是有一定工作量的,短時(shí)間也難以完成配置,所以更需要我們靠記憶快速完成Tomcat服務(wù)器配置。本站的Tomcat服務(wù)器教程中還有更加詳細(xì)的配置步驟,亟廣大初學(xué)者之需,幫我們快速上手Tomcat。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)