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