tomcat配置

Tomcat之虛擬主機(jī)配置以及web應(yīng)用配置

Tomcat目錄結(jié)構(gòu)如下:

bin ---- 啟動(dòng)和關(guān)閉需要的bat文件所在的目錄

conf --- 配置目錄

lib --- tomcat運(yùn)行時(shí)需要的jar包所在的目錄

logs --- 運(yùn)行時(shí)產(chǎn)生的日志信息所在的目錄

temp --- tomcat運(yùn)行時(shí)產(chǎn)生的臨時(shí)文件存放的目錄,不需要我們管理

webapps --- 開發(fā)中最常用的目錄,web應(yīng)用放置到此目錄下瀏覽器可以直接訪問

work --- 工作目錄,tomcat運(yùn)行時(shí)產(chǎn)生的工作文件存放在這個(gè)目錄中

一、基本概念

虛擬主機(jī)的簡單理解:

在一臺(tái)Tomcat服務(wù)器中可以同時(shí)管理多個(gè)站點(diǎn),即可以將多個(gè)站點(diǎn)配置在同一臺(tái)Tomcat服務(wù)器上,而對(duì)于用戶(瀏覽器)而言,是不知道具體哪些網(wǎng)站是布置在同一臺(tái)Tomcat(服務(wù)器)之上的,對(duì)于用戶(瀏覽器)而言,每個(gè)站點(diǎn)都像是運(yùn)行在各自獨(dú)立的服務(wù)器上。此時(shí)每個(gè)網(wǎng)站就是運(yùn)行在同一臺(tái)這是服務(wù)器中各自對(duì)應(yīng)的虛擬主機(jī)上。此時(shí),簡單的理解,每個(gè)網(wǎng)站就可以認(rèn)為是一個(gè)虛擬主機(jī)。

Web應(yīng)用:

一個(gè)Web應(yīng)用程序是由完成特定任務(wù)的各種Web組件(web components)構(gòu)成的并通過Web將服務(wù)展示給外界。在實(shí)際應(yīng)用中,Web應(yīng)用程序是由多個(gè)Servlet、JSP頁面、HTML文件以及圖像文件等web資源組成。而這些web資源不能直接交給虛擬主機(jī),故將這些資源按照一定的格式組織成web應(yīng)用交由虛擬機(jī)主機(jī)管理。所有這些組件相互協(xié)調(diào)為用戶提供一組完整的服務(wù)。

簡單的將:web應(yīng)用就是按照特定格式組織的一些web資源(Servlet、JSP頁面、HTML文件以及圖像文件等)的集合,為用戶提供特定服務(wù)。

一個(gè)Tomcat中可以配置多個(gè)虛擬主機(jī),一個(gè)虛擬主機(jī)中可以配置多個(gè)web應(yīng)用。

二、Tomcat虛機(jī)主機(jī)配置

conf/server.xml中<Engin>標(biāo)簽下配置<Host>標(biāo)簽就可以為tomcat增加一臺(tái)虛擬主機(jī)了

name -- 指定虛擬主機(jī)的名稱,瀏覽器通過這個(gè)名稱訪問虛擬主機(jī)

appBase -- 虛擬主機(jī)管理的目錄,放置在這個(gè)目錄下的web應(yīng)用當(dāng)前虛擬主機(jī)可以自動(dòng)加載(在autoDeploy為true的情況下)相當(dāng)于Localhost虛擬主機(jī)的webapps目錄(在autoDeploy為true的情況下)

debug -- 是日志的調(diào)試等級(jí)
unpackWARs -- 設(shè)置為true,在Web應(yīng)用為*.war時(shí),解壓此WAR文件. 如果為true,則tomcat會(huì)自動(dòng)將WAR文件解壓;否則不解壓,直接從WAR文件中運(yùn)行應(yīng)用程序.
autoDeploy -- 默認(rèn)為true,表示如果有新的WEB應(yīng)用放入appBase 并且Tomcat在運(yùn)行的情況下,自動(dòng)載入應(yīng)用

實(shí)例代碼:

[html] view plaincopy

<embed id="ZeroClipboardMovie_1" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. </pre><pre>

[html] view plaincopy

<embed id="ZeroClipboardMovie_2" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_2" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <Server port="8005" shutdown="SHUTDOWN">

  3. <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>

  4. <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>

  5. <Listener className="org.apache.catalina.core.JasperListener"/>

  6. <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>

  7. <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>

  8. <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>

  9. <GlobalNamingResources>

  10. <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>

  11. </GlobalNamingResources>

  12. <Service name="Catalina">

  13. <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

  14. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

  15. <Engine defaultHost="localhost" name="Catalina">

  16. <Realm className="org.apache.catalina.realm.LockOutRealm">

  17. <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

  18. </Realm>

  19. <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

  20. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>

  21. <Context docBase="D:\apache-tomcat-7.0.63\wtpwebapps\Cabinet_WS" path="/Cabinet_WS" reloadable="true" source="org.eclipse.jst.jee.server:Cabinet_WS"/>

  22. </Host>

  23. <Host appBase="mywebapps" autoDeploy="true" name="www.google.com" unpackWARs="true">

  24. </Host>

  25. </Engine>

  26. </Service>

  27. </Server>

三、Tomcat配置web應(yīng)用

3.1、Tomcat中Web應(yīng)用的目錄結(jié)構(gòu):

web應(yīng)用目錄結(jié)構(gòu): 如果目錄結(jié)構(gòu)不合法可能會(huì)出現(xiàn)各種問題.

news

|

|--靜態(tài)資源和JSP文件都可以直接放置在web應(yīng)用的目錄下,瀏覽器可以直接訪問到

|--WEB-INF

|--classes -- 動(dòng)態(tài)web資源運(yùn)行時(shí)的class文件要放在這個(gè)目錄下

|--lib -- 動(dòng)態(tài)web資源運(yùn)行時(shí)所依賴的jar包要放在這個(gè)目錄下

|--web.xml -- 整個(gè)web應(yīng)用的配置文件,配置主頁/Servlet的映射/過濾器監(jiān)聽器的配置都需要依賴這個(gè)文件進(jìn)行

說明

WEB-INF -- 可以沒有,但是最好有,如果有則一定要保證他的目錄結(jié)構(gòu)是完整的.放置在WEB-INF目錄下的所有資源瀏覽器沒有辦法直接進(jìn)行訪問

3.2、Tomcat中配置web應(yīng)用的幾種方式:

方式一:這種配置方式需要重啟服務(wù)器不推薦

在tomcat安裝目錄/conf/Server.xml的<Host>標(biāo)簽中,配置<Context>標(biāo)簽,就可以為該虛擬主機(jī)配置一個(gè)web應(yīng)用了

缺省web應(yīng)用設(shè)置:

如果將path設(shè)置為空則這個(gè)web應(yīng)用為缺省web應(yīng)用

示例代碼如下:加粗部分

[html] view plaincopy

<embed id="ZeroClipboardMovie_3" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_3" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=3&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <Server port="8005" shutdown="SHUTDOWN">

  3. <Listener className="org.apache.catalina.startup.VersionLoggerListener"/>

  4. <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>

  5. <Listener className="org.apache.catalina.core.JasperListener"/>

  6. <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>

  7. <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>

  8. <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>

  9. <GlobalNamingResources>

  10. <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>

  11. </GlobalNamingResources>

  12. <Service name="Catalina">

  13. <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

  14. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

  15. <Engine defaultHost="localhost" name="Catalina">

  16. <Realm className="org.apache.catalina.realm.LockOutRealm">

  17. <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

  18. </Realm>

  19. <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

  20. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>

  21. <Context docBase="D:\apache-tomcat-7.0.63\wtpwebapps\HelloWord" path="/HelloWord" reloadable="true" />

  22. </Host>

  23. </Engine>

  24. </Service>

  25. </Server>

[html] view plaincopy

<embed id="ZeroClipboardMovie_4" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_4" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=4&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. </pre><pre>

**其中<Context>標(biāo)簽屬性說明: **

|

屬性名

|

說明

|
|

path

|

訪問的URI,如:http://localhost/是我的應(yīng)用的根目錄,在瀏覽器中訪問此應(yīng)用將用,在地址欄輸入:http://localhost/HelloWord

|
|

docBase

|

WEB應(yīng)用的目錄web application的文件存放的硬件路徑或者是WAR文件存放硬件路徑。

|
|

reloadable

|

是否在程序有改動(dòng)時(shí)重新載入,設(shè)置成true會(huì)影響性能,但可自動(dòng)載入修改后的文件. 如果為true,則Tomcat將支持熱部署,會(huì)自動(dòng)檢測web application的/WEB-INF/lib和/WEB-INF/classes目錄的變化,自動(dòng)裝載新的JSP和Servlet,我們可以在不重起Tomcat的情況下改變web application

|

方式二、這種配置方式不需要重啟服務(wù)器,推薦使用

tomcat安裝目錄/conf/[EnginName]/[HostName]/在這個(gè)目錄下寫一個(gè)xml文件,其中xml文件的名字就是虛擬路徑,在這個(gè)xml中可以配置<Context>標(biāo)簽,其中配置真實(shí)路徑.

注意:

1)其中[EnginName]指的是在tomcat安裝目錄/conf/Server.xml這個(gè)配置文件中<Engin>標(biāo)簽元素對(duì)應(yīng)的名字。

2)[HostName]指tomcat安裝目錄/conf/Server.xml這個(gè)配置文件中<Host>標(biāo)簽元素的名字。

3)如果所配置的虛擬路徑中有/,由于文件名中不允許包含/需要用#替代.

使用方式二完成方法一中相同的配置時(shí),應(yīng)進(jìn)行如下操作:

1)在tomcat安裝目錄/conf/CataLina/localhost/目錄下創(chuàng)建一個(gè)名為HelloWord.xml的文件,(若文件名中有斜杠時(shí)使用#好代替:test#HelloWord.xml)

2)在HelloWord.xml文件中寫入如下代碼:

[html] view plaincopy

<embed id="ZeroClipboardMovie_5" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_5" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=5&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Context docBase="D:\apache-tomcat-7.0.63\wtpwebapps\HelloWord" path="/HelloWord" reloadable="true" />

其中<Context>標(biāo)簽屬性說明參照上面內(nèi)容。

缺省web應(yīng)用設(shè)置:

只要將文件名設(shè)置為ROOT.xml則這個(gè)xml描述的web應(yīng)用就成為了缺省web應(yīng)用,

方式三、最簡單、最常用的方式

直接將web應(yīng)用放置到,虛擬主機(jī)管理的目錄下,此時(shí)虛擬主機(jī)就會(huì)自動(dòng)加載該目錄下的web應(yīng)用

/conf/Server.xml的<Host>標(biāo)簽中的屬性appBase所指向的目錄即為當(dāng)前虛擬主機(jī)虛擬主機(jī)自動(dòng)管理的目錄,在屬性autoDeploy為true的情況下,放置在這個(gè)目錄下的web應(yīng)用當(dāng)前虛擬主機(jī)可以自動(dòng)加載。

缺省web應(yīng)用設(shè)置:

只要將web應(yīng)用文件夾名設(shè)置為ROOT則這個(gè)web應(yīng)用就成為了缺省web應(yīng)用,默認(rèn)已經(jīng)有一個(gè)web應(yīng)用,即默認(rèn)訪問的Tomcat的主頁。

附關(guān)于/conf/Server.xml配置的詳細(xì)說明

/conf/Server.xml文件的詳細(xì)配置說明如下:

[html] view plaincopy

<embed id="ZeroClipboardMovie_6" src="https://csdnimg.cn/public/highlighter/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="16" height="16" name="ZeroClipboardMovie_6" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=6&width=16&height=16" wmode="transparent" style="box-sizing: border-box;">

  1. <Server port="8005" shutdown="SHUTDOWN">

  2. <Listener className="org.apache.catalina.core.AprLifecycleListener" />

  3. <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />

  4. <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  5. <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>

  6. <GlobalNamingResources>

  7. <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

  8. <Resource name="UserDatabase" auth="Container"

  9. type="org.apache.catalina.UserDatabase"

  10. description="User database that can be updated and saved"

  11. factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

  12. pathname="conf/tomcat-users.xml" />

  13. </GlobalNamingResources>

  14. <Service name="Catalina">

  15. <Connector port="8080" protocol="HTTP/1.1"

  16. connectionTimeout="20000"

  17. redirectPort="8443" />

  18. <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"

  19. maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

  20. clientAuth="false" sslProtocol="TLS" />

  21. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

  22. <Engine name="Catalina" defaultHost="localhost">

  23. <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

  24. resourceName="UserDatabase"/>

  25. <Host name="localhost" appBase="webapps"

  26. unpackWARs="true" autoDeploy="true"

  27. xmlValidation="false" xmlNamespaceAware="false">

  28. <Context path="/demm" docBase="E:\projects\demm\WebRoot" debug="0" reloadable="true" >

  29. </Context>

  30. </Host>

  31. </Engine>

  32. </Service>

  33. </Server>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容