大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Tomcat視頻教程:Tomcat的架構(gòu)和server.xml配置

Tomcat視頻教程:Tomcat的架構(gòu)和server.xml配置

更新時(shí)間:2021-09-23 09:59:53 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1003次

當(dāng)您在服務(wù)器上部署 Web 應(yīng)用程序并從瀏覽器訪問時(shí),我們已經(jīng)了解了 Web 服務(wù)器的一般工作方式。現(xiàn)在讓我們學(xué)習(xí)服務(wù)器內(nèi)部的東西,這些東西在日常工作中可能不會(huì)用到,但是當(dāng)您第一次配置應(yīng)用程序時(shí),它們肯定會(huì)對您有所幫助。我很長時(shí)間以來一直在使用tomcat 服務(wù)器,所以我選擇它作為教程。將來只要時(shí)間允許,我將嘗試在其他服務(wù)器上分享我的學(xué)習(xí)。

Apache Tomcat是由 Apache 軟件基金會(huì) (ASF) 開發(fā)的開源 Web 服務(wù)器和 servlet 容器。Tomcat 實(shí)現(xiàn)了多種 Java EE 規(guī)范,包括 Java Servlet、JavaServer Pages (JSP)、Java EL 和 WebSocket,并為 Java 代碼運(yùn)行提供了“純 Java”HTTP Web 服務(wù)器環(huán)境。 [ Wiki ]

Tomcat的架構(gòu)

Tomcat 的架構(gòu)由一系列功能組件組成,這些功能組件可以按照明確定義的規(guī)則進(jìn)行組合。

每個(gè)服務(wù)器安裝的結(jié)構(gòu)(通過這些功能組件)在文件中定義,該文件server.xml位于Tomcat 安裝文件夾的/conf子目錄中。讓我們詳細(xì)討論這些組件。

server.xml 組件

默認(rèn)情況下,server.xml文件帶有此配置,我們將詳細(xì)研究它的元素。

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
   <Listener className="org.apache.catalina.core.JasperListener" />
   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
   <GlobalNamingResources>
     <Resource name="UserDatabase" auth="Container"
               type="org.apache.catalina.UserDatabase"
               description="User database that can be updated and saved"
               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
               pathname="conf/tomcat-users.xml" />
   </GlobalNamingResources>
   <Service name="Catalina">
     <Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />
     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
     <Engine name="Catalina" defaultHost="localhost">
       <Realm className="org.apache.catalina.realm.LockOutRealm">
         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                resourceName="UserDatabase"/>
       </Realm>
       <Host name="localhost"  appBase="webapps"
             unpackWARs="true" autoDeploy="true">
         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="localhost_access_log." suffix=".txt"
                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
       </Host>
     </Engine>
   </Service>
</Server>

下面從里到外討論tomcat配置文件的功能組件,更好的把東西聯(lián)系起來。

語境

上下文是一組稱為容器的 Tomcat 組件的最內(nèi)層元素,它代表單個(gè) Web 應(yīng)用程序。Tomcat 會(huì)在加載應(yīng)用程序時(shí)自動(dòng)實(shí)例化和配置標(biāo)準(zhǔn)上下文。作為配置的一部分,Tomcat 還會(huì)處理在\WEB-INF\web.xml您的應(yīng)用程序文件夾的文件中定義的屬性,并使它們對應(yīng)用程序可用。

連接器 [第 16-19 行]

連接器處理與客戶端的通信。Tomcat 有多個(gè)可用的連接器,例如用于大多數(shù) HTTP 流量的 HTTP 連接器和實(shí)現(xiàn) AJP 協(xié)議的 AJP 連接器,這些連接器實(shí)現(xiàn)了在將 Tomcat 連接到另一個(gè) Web 服務(wù)器(例如 Apache HTTPD 服務(wù)器)時(shí)使用的 AJP 協(xié)議。

Tomcat 的默認(rèn)配置包括一個(gè)連接器來處理 HTTP 通信。默認(rèn)情況下,此連接器等待來自端口8080 的請求。這就是為什么我們示例的 URL 總是以http://localhost:8080/. 請注意,所有應(yīng)用程序的請求都通過此連接器的單個(gè)實(shí)例。每個(gè)新請求都會(huì)導(dǎo)致一個(gè)新線程的實(shí)例化,該線程在請求??持續(xù)時(shí)間內(nèi)在連接器中保持活動(dòng)狀態(tài)。Internet 上有關(guān) Tomcat 的文章通常將此連接器稱為“ Coyote”。

的connectionTimeout屬性集至20,000表示會(huì)話為5小時(shí),33分鐘,和不活動(dòng)的20秒后終止,而redirectPort =” 8443“意味著,需要安全套接字層(SSL)輸送到來的請求被重定向到端口8443。

AJP 連接器讓 Tomcat 只處理動(dòng)態(tài)網(wǎng)頁,而讓純 HTML 服務(wù)器(例如,Apache Web 服務(wù)器)處理對靜態(tài)頁面的請求。這最大限度地提高了處理請求的效率。您可以注釋掉這個(gè)連接器,因?yàn)榻裉?tomcat 本身非常快,或者只是如果您不打算將 Web 服務(wù)器與 Tomcat 一起使用。

主機(jī) [第 25-30 行]

主機(jī)是網(wǎng)絡(luò)名稱(例如 www.yourdomain.com)與 Tomcat 服務(wù)器的關(guān)聯(lián)。主機(jī)可以包含任意數(shù)量的上下文(即應(yīng)用程序)。您可以在同一臺(tái)服務(wù)器上定義多個(gè)主機(jī)。例如,如果您已注冊域yourdomain.com,則可以定義主機(jī)名,例如w1.yourdomain.com和w2.yourdomain.com。請記住,只有當(dāng)域名服務(wù)器將其名稱映射到您計(jì)算機(jī)的 IP 地址時(shí),才能從 Internet 訪問它。

Tomcat 的默認(rèn)配置包括名為localhost 的主機(jī)。本地主機(jī)和您的計(jì)算機(jī)之間的關(guān)聯(lián)是通過在文件中寫入一個(gè)條目來完成的C:\Windows\System32\drivers\etc\hosts。

Host 屬性“ appBase ”定義了 Tomcat 安裝文件夾中的應(yīng)用程序目錄。然后,每個(gè)應(yīng)用程序由其在該目錄中的路徑標(biāo)識(shí)。唯一的例外是路徑 ROOT,它映射到空字符串。localhost 的應(yīng)用程序基目錄是 webapps。這意味著目錄“ C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\ROOT\”中的應(yīng)用程序由空字符串標(biāo)識(shí)。因此,它的 URL 是“ http://localhost:8080/”。對于駐留在除 ROOT 之外的目錄中的其他應(yīng)用程序,如“ C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\myapp\”,URL 類似于“ http://localhost:8080/myapp/”。

屬性u(píng)npackWARs="true"表示如果在appBase目錄中放置一個(gè) WAR 文件,Tomcat 會(huì)自動(dòng)將其展開到一個(gè)普通文件夾中。如果將此屬性設(shè)置為 false,應(yīng)用程序?qū)⒅苯訌?WAR 文件運(yùn)行。這顯然意味著應(yīng)用程序的執(zhí)行速度較慢,因?yàn)?Tomcat 需要在執(zhí)行時(shí)解壓縮 WAR 文件。

屬性autoDeploy="true"意味著如果您appBase在 Tomcat 運(yùn)行時(shí)將應(yīng)用程序放到目錄中,它將自動(dòng)部署。

引擎 [第 20 行]

引擎代表特定服務(wù)的請求處理管道。由于 Service 可能有多個(gè)連接器,引擎接收并處理來自這些連接器的所有請求,將響應(yīng)傳遞回適當(dāng)?shù)倪B接器以傳輸給客戶端。

一個(gè)引擎必須包含一臺(tái)或多臺(tái)主機(jī),其中一臺(tái)被指定為默認(rèn)主機(jī)。默認(rèn)的 Tomcat 配置包括引擎 Catalina,它包含主機(jī) localhost(顯然指定為默認(rèn)主機(jī),因?yàn)樗俏ㄒ坏?。Catalina 引擎處理通過 HTTP 連接器接收到的所有傳入請求并發(fā)回相應(yīng)的響應(yīng)。它根據(jù)請求頭中包含的信息將每個(gè)請求轉(zhuǎn)發(fā)到正確的主機(jī)和上下文。

服務(wù) [第 15 行]

服務(wù)是位于服務(wù)器內(nèi)部的中間組件,并將一個(gè)或多個(gè)連接器綁定到一個(gè)引擎。Tomcat 的默認(rèn)配置包括服務(wù) Catalina,它將 HTTP 和 AJP 連接器與 Catalina 引擎相關(guān)聯(lián)。因此,連接器和引擎是服務(wù)元素的子元素。

Service 元素很少由用戶自定義,因?yàn)槟J(rèn)實(shí)現(xiàn)簡單且足夠。

服務(wù)器 [第 2 行]

Server 是頂層組件,代表 Tomcat 的一個(gè)實(shí)例。它可以包含一個(gè)或多個(gè)服務(wù),每個(gè)服務(wù)都有自己的引擎和連接器。

現(xiàn)在讓我們討論上面使用的一些其他概念server.xml。

聽眾 [第 3-7 行]

偵聽器是一個(gè) Java 對象,它通過實(shí)現(xiàn)org.apache.catalina.LifecycleListener接口能夠響應(yīng)特定事件。

AprLifecycleListener:啟用 Apache Portable Runtime (APR) 庫。該庫為 tomcat 提供操作系統(tǒng)級(jí)別的支持。

JasperListener:啟用 Jasper,它是 JSP 引擎。該偵聽器使重新編譯已更新的 JSP 文檔成為可能。

JreMemoryLeakPreventionListener:處理可能導(dǎo)致內(nèi)存泄漏的不同已知情況。

GlobalResourcesLifecycleListener:負(fù)責(zé)實(shí)例化與全局 Java 命名和目錄接口 (JNDI) 關(guān)聯(lián)的托管 bean。

ThreadLocalLeakPreventionListener:還處理可能導(dǎo)致內(nèi)存泄漏的不同已知情況。

全球命名資源

該GlobalNamingResources元素只能在服務(wù)器組件內(nèi)定義。它定義了可在整個(gè)服務(wù)器中訪問的 JNDI 資源。默認(rèn)情況下定義的唯一資源server.xml是通過文件定義的用戶和密碼基于內(nèi)存的數(shù)據(jù)庫conf/tomcat-users.xml。

領(lǐng)域 [第 21-24 行]

Realm 組件可以出現(xiàn)在任何容器組件(Engine、Host 和 Context)中。它代表用戶、密碼和用戶角色的數(shù)據(jù)庫。其目的是支持基于容器的身份驗(yàn)證。

此外UserDatabaseRealm,以下領(lǐng)域類可用:(JDBCRealm通過其 JDBC 驅(qū)動(dòng)程序連接到關(guān)系數(shù)據(jù)庫),DataSourceRealm(連接到通過 JNDI 命名的 JDBC 數(shù)據(jù)源),JNDIRealm(連接到輕量級(jí)目錄訪問協(xié)議目錄),和MemoryRealm(到在內(nèi)存中加載一個(gè) XML 文件)。

Valve [線 27-29]

Valve 是一個(gè)類似于元素的攔截器,當(dāng)插入到容器(上下文、主機(jī)或引擎)中時(shí),它會(huì)在所有傳入的 HTTP 請求到達(dá)應(yīng)用程序之前攔截它們。這使您能夠預(yù)處理針對特定應(yīng)用程序的請求;虛擬主機(jī)中運(yùn)行的應(yīng)用程序或引擎中運(yùn)行的所有應(yīng)用程序。

閥門可以有多種用途,例如

該RemoteAddrValve閥可以讓你選擇性地允許或他們的源IP地址的基礎(chǔ)上塊的請求。它支持兩個(gè)屬性——允許和阻止。

<Valve className="org.apache.catalina.valves.RemoteAddrValve" block="192\.168.*"/>

該RemoteHostValve閥的運(yùn)作就像遠(yuǎn)程地址過濾,但對客戶端的主機(jī)名,而不是客戶端的IP地址。

<Valve className="org.apache.catalina.valves.RemoteHostValve" deny=".*badweb\.com"/>

RequestDumperValve傳入請求的日志詳細(xì)信息,因此可用于調(diào)試目的。

<Valve className="org.apache.catalina.valves.RequestDumperValve"/>

single sign on valve,包括在主機(jī)容器中時(shí),有需要一種身份驗(yàn)證該主機(jī)的所有應(yīng)用程序的影響。如果沒有這個(gè)閥,用戶在使用每個(gè)單獨(dú)的應(yīng)用程序之前必須輸入他的 ID 和密碼。

<Valve className="org.apache.catalina.valves.SingleSignOn"/>

以上就是關(guān)于“Tomcat視頻教程:Tomcat的架構(gòu)和server.xml配置”的介紹,大家如果想了解更多相關(guān)知識(shí),不妨關(guān)注動(dòng)力節(jié)點(diǎn)的Tomcat視頻教程,里面的內(nèi)容更詳細(xì),可以免費(fèi)下載學(xué)習(xí),希望對大家能夠有所幫助。

提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 逆天至尊免费看229集 | 四虎精品视频在线永久免费观看 | 精品亚洲综合在线第一区 | 亚洲色综合 | 欧美日韩一区二区视频免费看 | 前任4在线观看 | 高清人人天天夜夜曰狠狠狠狠 | 久久人与动人物a级毛片 | 久久综合久久美利坚合众国 | 欧美高清一区 | 久久www免费人成看国产片 | 欧美人与鲁交大毛片免费 | 精品国产九九 | 夜夜操夜夜摸 | 国产精品一区久久精品 | 国产香蕉精品视频在 | 四虎地址8848在线观看 | 激情一区二区三区 | 97天天做天天爱夜夜爽 | 国产成人精品免费视 | 日韩精品视频在线观看免费 | 国产日产精品_国产精品毛片 | 欧美一级特黄毛片免费 | 亚洲精品播放 | 精品久久久久久久久中文字幕 | 一级a做爰片欧欧美毛片4 | 能免费看黄的网站 | 久久69 | 欧美国产一区二区 | 亚洲国产人成中文幕一级二级 | 青青青国产免费全部免费观看 | 国产综合在线播放 | 久久99久久99小草精品免视看 | 中国一级特黄特级毛片 | 97爱爱爱 | 欧美成人七十二式性视频教程 | 香蕉一区二区三区观 | 在线国产福利 | 91国内精品线免费播放 | 羞羞网站免费观看 | 欧美成人毛片免费网站 |