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