真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java容器Tomcat等中間價原理、安裝、配置和使用方法

這篇文章主要講解了“Java容器Tomcat等中間價原理、安裝、配置和使用方法”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java容器Tomcat等中間價原理、安裝、配置和使用方法”吧!

專注于為中小企業(yè)提供網(wǎng)站設(shè)計、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)商洛免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

操作系統(tǒng),中間件,數(shù)據(jù)庫,并稱軟件系統(tǒng)領(lǐng)域三大高地。中間件是處于操作系統(tǒng)和應(yīng)用程序之間的軟件,也有人認(rèn)為它應(yīng)該屬于操作系統(tǒng)中的一部分。中間件的作用,主要是為復(fù)雜的應(yīng)用程序抽象出通用的公共部分,以降低應(yīng)用開發(fā)的復(fù)雜程度。

因此,中間件隨著客戶需求的更新以及技術(shù)條件的變革,得到了不斷地發(fā)展。 中間件的發(fā)展,經(jīng)歷了TM監(jiān)控器、交易中間件、消息中間件、ORB中間件、應(yīng)用服務(wù)器等階段。目前用戶的需求已經(jīng)從純粹追求單方面的功能如事務(wù)、交易、消 息逐漸上升到需要一個整合平臺,而技術(shù)上,則從基于C、以及CORBA的技術(shù)、發(fā)展到J2EE?,F(xiàn)在,J2EE應(yīng)用服務(wù)器是市場上的主流的中間件。 從整個軟件產(chǎn)業(yè)來說,中間件搭建了應(yīng)用與技術(shù)之間的橋梁,成為軟件產(chǎn)業(yè)鏈條上不可或缺的一環(huán),其作用巨大。從市場上看,中間件市場每年的增長超過了整個軟件行業(yè)的增長。

國內(nèi)中間件市場主要被兩大國外廠商IBM和BEA壟斷。他們提供以J2EE應(yīng)用服務(wù)器為核心的中間件產(chǎn)品,在銀行、證券、電 信、甚至政府等行業(yè)中得到廣泛應(yīng)用。電子商務(wù)的倡導(dǎo)者,IT業(yè)界的巨頭IBM在1999推出應(yīng)用服務(wù)器WebSphere,憑借IBM的整體影響力進(jìn)行銷 售,在金融等行業(yè)根基很深。 BEA是一家專門致力于中間件開發(fā)的公司。它的應(yīng)用服務(wù)器產(chǎn)品Weblogic發(fā)布時間早,在國外電子商務(wù)中已經(jīng)廣泛應(yīng)用。 該公司主要面向行業(yè)和高端市場,目前在國內(nèi)電信及證券行業(yè)占據(jù)主要地位。Sun公司本是Unix工作站的硬件廠商,但隨著其倡導(dǎo)的JAVA技術(shù)在 Internet應(yīng)用中的地位越來越重要,并且J2EE已成為業(yè)界標(biāo)準(zhǔn),Sun已經(jīng)成為Internet技術(shù)的領(lǐng)頭人之一。而Sun在近兩年中收購了三家 應(yīng)用服務(wù)器廠商,便是對該技術(shù)最大的肯定。

在全球市場,IBM、BEA、Sun、Iona、Oracle、Sybase等大型應(yīng)用服務(wù)器 供應(yīng)商正暗戰(zhàn)不斷。然而讓人遺憾的是,在這些如火如荼的新技術(shù)風(fēng)暴中,我們卻始終難覓國產(chǎn)中間件廠商的身影。國內(nèi)企業(yè)在應(yīng)用服務(wù)器的選擇上,不僅僅要承受 國外廠商巨額的費用,面臨著本地支持不夠的問題,還涉及到國家信息安全等深層次的考慮。國內(nèi)軟件廠商和國內(nèi)企業(yè)均處于比較尷尬的境地。

下面我們就對主流Java容器Tomca下詳細(xì)說明:

(一)Tomcat簡介

Tomcat 服務(wù)器是一個免費的開放源代碼的Web 應(yīng)用服務(wù)器,Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,它早期的名稱為catalina,后來由Apache、Sun 和其他一些公司及個人共同開發(fā)而成,并更名為Tomcat。Tomcat 是一個小型的輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選,因為Tomcat 技術(shù)先進(jìn)、性能穩(wěn)定,成為目前比較流行的Web 應(yīng)用服務(wù)器。Tomcat是應(yīng)用(java)服務(wù)器,它只是一個servlet容器,是Apache的擴(kuò)展,但它是獨立運行的。目前最新的版本為Tomcat 8.0.24 Released。

Tomcat不是一個完整意義上的Jave EE服務(wù)器,它甚至都沒有提供對哪怕是一個主要Java EE API的實現(xiàn);但由于遵守apache開源協(xié)議,tomcat卻又為眾多的java應(yīng)用程序服務(wù)器嵌入自己的產(chǎn)品中構(gòu)建商業(yè)的java應(yīng)用程序服務(wù)器,如JBoss和JOnAS。盡管Tomcat對Jave EE API的實現(xiàn)并不完整,然而很企業(yè)也在漸漸拋棄使用傳統(tǒng)的Java EE技術(shù)(如EJB)轉(zhuǎn)而采用一些開源組件來構(gòu)建復(fù)雜的應(yīng)用。這些開源組件如Structs、Spring和Hibernate,而Tomcat能夠?qū)@些組件實現(xiàn)完美的支持。

(二)Tomcat的架構(gòu):

Tomcat 6支持Servlet 2.5和JSP 2.1的規(guī)范,它由一組嵌套的層次和組件組成,一般可分為以下四類:

—頂級組件:位于配置層次的頂級,并且彼此間有著嚴(yán)格的對應(yīng)關(guān)系; —連接器:連接客戶端(可以是瀏覽器或Web服務(wù)器)請求至Servlet容器, —容器:包含一組其它組件; —被嵌套的組件:位于一個容器當(dāng)中,但不能包含其它組件;

各常見組件: 1、服務(wù)器(server):Tomcat的一個實例,通常一個JVM只能包含一個Tomcat實例;因此,一臺物理服務(wù)器上可以在啟動多個JVM的情況下在每一個JVM中啟動一個Tomcat實例,每個實例分屬于一個獨立的管理端口。這是一個頂級組件。 2、服務(wù)(service):一個服務(wù)組件通常包含一個引擎和與此引擎相關(guān)聯(lián)的一個或多個連接器。給服務(wù)命名可以方便管理員在日志文件中識別不同服務(wù)產(chǎn)生的日志。一個server可以包含多個service組件,但通常情下只為一個service指派一個server。

連接器類組件: 3、連接器(connectors):負(fù)責(zé)連接客戶端(可以是瀏覽器或Web服務(wù)器)請求至Servlet容器內(nèi)的Web應(yīng)用程序,通常指的是接收客戶發(fā)來請求的位置及服務(wù)器端分配的端口。默認(rèn)端口通常是HTTP協(xié)議的8080,管理員也可以根據(jù)自己的需要改變此端口。一個引擎可以配置多個連接器,但這些連接器必須使用不同的端口。默認(rèn)的連接器是基于HTTP/1.1的Coyote。同時,Tomcat也支持AJP、JServ和JK2連接器。

容器類組件: 4、引擎(Engine):引擎通是指處理請求的Servlet引擎組件,即Catalina Servlet引擎,它檢查每一個請求的HTTP首部信息以辨別此請求應(yīng)該發(fā)往哪個host或context,并將請求處理后的結(jié)果返回的相應(yīng)的客戶端。嚴(yán)格意義上來說,容器不必非得通過引擎來實現(xiàn),它也可以是只是一個容器。如果Tomcat被配置成為獨立服務(wù)器,默認(rèn)引擎就是已經(jīng)定義好的引擎。而如果Tomcat被配置為Apache Web服務(wù)器的提供Servlet功能的后端,默認(rèn)引擎將被忽略,因為Web服務(wù)器自身就能確定將用戶請求發(fā)往何處。一個引擎可以包含多個host組件。 5、主機(jī)(Host):主機(jī)組件類似于Apache中的虛擬主機(jī),但在Tomcat中只支持基于FQDN的“虛擬主機(jī)”。一個引擎至少要包含一個主機(jī)組件。 6、上下文(Context):Context組件是最內(nèi)層次的組件,它表示W(wǎng)eb應(yīng)用程序本身。配置一個Context最主要的是指定Web應(yīng)用程序的根目錄,以便Servlet容器能夠?qū)⒂脩粽埱蟀l(fā)往正確的位置。Context組件也可包含自定義的錯誤頁,以實現(xiàn)在用戶訪問發(fā)生錯誤時提供友好的提示信息。

被嵌套類(nested)組件: 這類組件通常包含于容器類組件中以提供具有管理功能的服務(wù),它們不能包含其它組件,但有些卻可以由不同層次的容器各自配置。 7、閥門(Valve):用來攔截請求并在將其轉(zhuǎn)至目標(biāo)之前進(jìn)行某種處理操作,類似于Servlet規(guī)范中定義的過濾器。Valve可以定義在任何容器類的組件中。Valve常被用來記錄客戶端請求、客戶端IP地址和服務(wù)器等信息,這種處理技術(shù)通常被稱作請求轉(zhuǎn)儲(request dumping)。請求轉(zhuǎn)儲valve記錄請求客戶端請求數(shù)據(jù)包中的HTTP首部信息和cookie信息文件中,響應(yīng)轉(zhuǎn)儲valve則記錄響應(yīng)數(shù)據(jù)包首部信息和cookie信息至文件中。 8、日志記錄器(Logger):用于記錄組件內(nèi)部的狀態(tài)信息,可被用于除Context之外的任何容器中。日志記錄的功能可被繼承,因此,一個引擎級別的Logger將會記錄引擎內(nèi)部所有組件相關(guān)的信息,除非某內(nèi)部組件定義了自己的Logger組件。 9、領(lǐng)域(Realm):用于用戶的認(rèn)證和授權(quán);在配置一個應(yīng)用程序時,管理員可以為每個資源或資源組定義角色及權(quán)限,而這些訪問控制功能的生效需要通過Realm來實現(xiàn)。Realm的認(rèn)證可以基于文本文件、數(shù)據(jù)庫表、LDAP服務(wù)等來實現(xiàn)。Realm的效用會遍及整個引擎或頂級容器,因此,一個容器內(nèi)的所有應(yīng)用程序?qū)⒐蚕碛脩糍Y源。同時,Realm可以被其所在組件的子組件繼承,也可以被子組件中定義的Realm所覆蓋。

引擎(Engine):引擎是指處理請求的Servlet引擎組件,即Catalina Servlet引擎,它從HTTPconnector接收請求并響應(yīng)請求。它檢查每一個請求的HTTP首部信息以辨別此請求應(yīng)該發(fā)往哪個host或context,并將請求處理后的結(jié)果返回的相應(yīng)的客戶端。嚴(yán)格意義上來說,容器不必非得通過引擎來實現(xiàn),它也可以是只是一個容器。如果Tomcat被配置成為獨立服務(wù)器,默認(rèn)引擎就是已經(jīng)定義好的引擎。而如果Tomcat被配置為Apache Web服務(wù)器的提供Servlet功能的后端,默認(rèn)引擎將被忽略,因為Web服務(wù)器自身就能確定將用戶請求發(fā)往何處。一個引擎可以包含多個host組件。

Tomcat連接器架構(gòu):

基于Apache做為Tomcat前端的架構(gòu)來講,Apache通過mod_jk、mod_jk2或mod_proxy模塊與后端的Tomcat進(jìn)行數(shù)據(jù)交換。而對Tomcat來說,每個Web容器實例都有一個Java語言開發(fā)的連接器模塊組件,在Tomcat6中,這個連接器是org.apache.catalina.Connector類。這個類的構(gòu)造器可以構(gòu)造兩種類別的連接器:HTTP/1.1負(fù)責(zé)響應(yīng)基于HTTP/HTTPS協(xié)議的請求,AJP/1.3負(fù)責(zé)響應(yīng)基于AJP的請求。但可以簡單地通過在server.xml配置文件中實現(xiàn)連接器的創(chuàng)建,但創(chuàng)建時所使用的類根據(jù)系統(tǒng)是支持APR(Apache Portable Runtime)而有所不同。

APR是附加在提供了通用和標(biāo)準(zhǔn)API的操作系統(tǒng)之上一個通訊層的本地庫的集合,它能夠為使用了APR的應(yīng)用程序在與Apache通信時提供較好伸縮能力時帶去平衡效用。 同時,需要說明的是,mod_jk2模塊目前已經(jīng)不再被支持了,mod_jk模塊目前還apache被支持,但其項目活躍度已經(jīng)大大降低。因此,目前更常用 的方式是使用mod_proxy模塊。

如果支持APR: Java容器Tomcat等中間價原理、安裝、配置和使用方法 如果不支持APR: Java容器Tomcat等中間價原理、安裝、配置和使用方法

連接器協(xié)議: Tomcat的Web服務(wù)器連接器支持兩種協(xié)議:AJP和HTTP,它們均定義了以二進(jìn)制格式在Web服務(wù)器和Tomcat之間進(jìn)行數(shù)據(jù)傳輸,并提供相應(yīng)的控制命令。

AJP(Apache JServ Protocol)協(xié)議:目前正在使用的AJP協(xié)議的版本是通過JK和JK2連接器提供支持的AJP13,它基于二進(jìn)制的格式在Web服務(wù)器和Tomcat之間傳輸數(shù)據(jù),而此前的版本AJP10和AJP11則使用文本格式傳輸數(shù)據(jù)。

HTTP協(xié)議:誠如其名稱所表示,其是使用HTTP或HTTPS協(xié)議在Web服務(wù)器和Tomcat之間建立通信,此時,Tomcat就是一個完全功能的HTTP服務(wù)器,它需要監(jiān)聽在某端口上以接收來自于商前服務(wù)器的請求。

[Tomcat的安裝、配置及使用]((https://mp.weixin.qq.com/s/sZ4dBa3E22qMC3JgCVMMeQ)

(一)JDK — JDK是 Java語言的軟件開發(fā)工具包,主要用于移動設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序。JDK是整個java開發(fā)的核心,它包含了JAVA的運行環(huán)境 —(JVM+Java系統(tǒng)類庫)和JAVA工具,沒有JDK的話,無法編譯Java程序(指java源碼.java文件)

使用tomcat,首先安裝JDK并配置java環(huán)境。

1、JDK版本一 OpenJDK: 開源版本 關(guān)閉防火墻和selinux,同步時間

[root@tomcat-77 ~]# yum -y install ntpdate
[root@tomcat-77 ~]# ntpdate time2.aliyun.com

安裝jdk,這里選擇java-1.8.0-openjdk,yum本地安裝即可
[root@tomcat-77 ~]# yum -y install java-1.8.0-openjdk
[r[root@tomcat-77 ~]# java -version   #版本查詢
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)  #混合模式
注意:安裝完成后,要配置JAVA_HOME環(huán)境變量,指向java的安裝路徑;
設(shè)定java環(huán)境變量
[root@tomcat-77 ~]# echo  $JAVA_HOME   #查詢是否有路徑
[root@tomcat-77 ~]# vim /etc/profile.d/java.sh  #編寫腳本
export JAVA_HOME=/usr
[root@tomcat-77 ~]# . /etc/profile.d/java.sh
[root@tomcat-77 ~]# echo $JAVA_HOME
/usr

2、JDK版本二 Oracle JDK:oracle官方版本 —oracle官方網(wǎng)站下載,安裝相應(yīng)版本的rpm包;

jdk-VERSION-OS-ARCH.rpm
例如:jdk-1.8.0_25-linux-x64.rpm

3、java環(huán)境變量配置 安裝完成后,要配置JAVA_HOME環(huán)境變量,指向java的安裝路徑; OpenJDK版本:

JAVA_HOME=/usr

Oracle JDK版本:

JAVA_HOME=/usr/java/jdk_VERSION

二、Servlet容器: servlet容器的主要任務(wù)是管理servlet的生命周期。而web容器更準(zhǔn)確的說應(yīng)該叫web服務(wù)器,它是來管理和部署 web應(yīng)用的。 web容器最典型的就是tomcat了,Tomcat是web容 器也是servlet容器。

Servlet(Server Applet)是Java Servlet的簡稱,稱為小服務(wù)程序或服務(wù)連接器,用Java編寫的服務(wù)器端程序,主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。 狹義的Servlet是指Java語言實現(xiàn)的一個接口,廣義的Servlet是指任何實現(xiàn)了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。Servlet運行于支持Java的應(yīng)用服務(wù)器中。從原理上講,Servlet可以響應(yīng)任何類型的請求,但絕大多數(shù)情況下Servlet只用來擴(kuò)展基于HTTP協(xié)議的Web服務(wù)器。 最早支持Servlet標(biāo)準(zhǔn)的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服務(wù)器開始支持標(biāo)準(zhǔn)的Servlet。 三、java在web中的應(yīng)用JSP技術(shù) 1、JSP技術(shù)定義 JSP是一種技術(shù),JSP技術(shù)是在傳統(tǒng)的網(wǎng)頁HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。使JSP開發(fā)的Web應(yīng)用可以跨平臺運行。 JSP屬于Servlet,因為在編譯JSP時,會把JSP先編譯為一個Servlet,然后由容器來提供服務(wù)

2、JSP頁面運行過程 .jsp文件 -->jasper--> .java --> javac --> .class類 --> jvm虛擬機(jī) 示例:


TITLE

...

<% ... java code... #java代碼 %>

注意:基于jasper將靜態(tài)輸出的數(shù)據(jù)轉(zhuǎn)為java代碼進(jìn)行輸出,結(jié)果為servlet規(guī)范的代碼;

3、JSP Container: jsp容器 JSP技術(shù)加Servlet容器就是形成了jsp容器,他就是后來的JWS是Java語言對WebService服務(wù)的一種實現(xiàn),用來開發(fā)和發(fā)布服務(wù)。

商業(yè)實現(xiàn)軟件有: WebSphere, WebLogic, Oc4j, Glassfish, Geronimo, JOnAS, JBoss, ... 開源實現(xiàn)軟件有: Tomcat, Jetty, Resin, ... 四、Tomcat安裝 Tomcat 服務(wù)器是一個免費的開放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對于一個初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)HTML標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用頁面的訪問請求。實際上Tomcat是Apache 服務(wù)器的擴(kuò)展,但運行時它是獨立運行的,所以當(dāng)你運行tomcat 時,它實際上作為一個與Apache 獨立的進(jìn)程單獨運行的。 官方網(wǎng)站:http://tomcat.apache.org/ Java 2 EE技術(shù)體系的不完整實現(xiàn);

1、安裝Tomcat: 方法一:Tomcat的Base Repo安裝:

[root@tomcat-77 ~]# yum install -y tomcat tomcat-lib tomcat-admin-webapps tomcat-webapps tomcat-docs-webapp
[root@tomcat-77 ~]# systemctl start tomcat.service

tomcat #核心包 tomcat-lib #庫文件 tomcat-admin-webapp s#基于web頁面管理接口 tomcat-webapps #jsp示例程序 tomcat-docs-webapp #操作文檔頁面

方法二:Tomcat 解壓展開安裝

 ~]# tar xf apache-tomcat-VERSION.tar.gz  -C /usr/local/  #解壓縮到指定目錄
 ~]# cd /usr/local
local ~]# ln -sv apache-tomcat-VERSION  tomcat  #設(shè)置別名
local ~]# vim /etc/profile.d/tomcat.sh  #編輯環(huán)境變量shell
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_BASE/bin:$PATH
local ~]# .  /etc/profile.d/tomcat.sh #執(zhí)行
local ~]#  cd tomcat/bin
bin ~]#catalina.sh --help #幫助信息
bin ~]#catalina.sh version  #版本信息
bin ~]#catalina.sh start  #啟動 tomcat
bin ~]#catalina.sh stop #停止tomcat
bin ~]#catalina.sh stop 9 #9秒后停止tomcat
bin ~]#catalina.sh stop 9 -force#9秒后強制停止tomcat

2、tomcat程序環(huán)境: tomcat的目錄結(jié)構(gòu) bin:腳本,及啟動時用到的類; conf:配置文件目錄; lib:庫文件,Java類庫,jar; logs:日志文件目錄; temp:臨時文件目錄; webapps:webapp的默認(rèn)目錄; work:工作目錄;

3、tomcat的配置文件構(gòu)成: server.xml:主配置文件;

web.xml:每個webapp只有“部署”后才能被訪問,它的部署方式通常由web.xml進(jìn)行定義,其存放位置為WEB-INF/目錄中;此文件為所有的webapps提供默認(rèn)部署相關(guān)的配置; context.xml:每個webapp都可以專用的配置文件,它通常由專用的配置文件context.xml來定義,其存放位置為WEB-INF/目錄中;此文件為所有的>webapps提供默認(rèn)配置; tomcat-users.xml:用戶認(rèn)證的賬號和密碼文件; catalina.policy:當(dāng)使用-security選項啟動tomcat時,用于為tomcat設(shè)置安全策略; catalina.properties:Java屬性的定義文件,用于設(shè)定類加載器路徑,以及一些與JVM調(diào)優(yōu)相關(guān)參數(shù); logging.properties:日志系統(tǒng)相關(guān)的配置;

4、Tomcat的核心組件:server.xml


    
       
        
...
        #引擎
              #主機(jī)
                 #程序
                
               ...
             
             
              ...
            
              ...
         
    

每一個組件都由一個Java“類”實現(xiàn),這些組件大體可分為以下幾個類型:

頂級組件:Server 服務(wù)類組件:Service 連接器組件:http, https, ajp(apache jserv protocol) 容器類:Engine, Host, Context 被嵌套類:valve, logger, realm, loader, manager, ... 集群類組件:listener, cluster, ...

五、JSP WebAPP部署: 1、JSP WebAPP的組織結(jié)構(gòu):

/: webapps的根目錄 index.jsp:主頁; WEB-INF/:當(dāng)前webapp的私有資源路徑;通常用于存儲當(dāng)前webapp的web.xml和context.xml配置文件; META-INF/:類似于WEB-INF/; classes/:類文件,當(dāng)前webapp所提供的類; lib/:類文件,當(dāng)前webapp所提供的類,被打包為jar格式;

2、webapp歸檔格式: .war:webapp .jar:EJB的類打包文件; .rar:資源適配器類打包文件; .ear:企業(yè)級webapp;

[root@tomcat-77 ~]# ls /var/lib/tomcat
webapps

3、部署(deploy)webapp的相關(guān)操作: 步驟: deploy:將webapp的源文件放置于目標(biāo)目錄(網(wǎng)頁程序文件存放目錄),配置tomcat服務(wù)器能夠基于web.xml和context.xml文件中定義的路徑來訪問此webapp;將其特有的類和依賴的類通過class loader裝載至JVM; 部署有兩種方式:自動部署和手動部署 操作分為:

冷部署:把webapp復(fù)制到指定的位置,而后才啟動tomcat; 熱部署:在不停止tomcat的前提下進(jìn)行部署; 反部署: undeploy:,停止webapp,并從tomcat實例上卸載webapp;

部署工具: manage:r、ant腳本、tcd(tomcat client deployer)等;

命令: start:啟動處于停止?fàn)顟B(tài)的webapp; stop:停止webapp,不再向用戶提供服務(wù);其類依然在jvm上; redeploy:重新部署;

4、手動提供一測試類應(yīng)用,并冷部署: 示例:

[root@tomcat-77 ~]# cd  /var/cache/tomcat/work
[root@tomcat-77 work]# ls
Catalina
[root@tomcat-77 work]# tree Catalina/
Catalina/
└── localhost
    ├── _
    │   └── org
    │       └── apache
    │           └── jsp
    │               ├── index_jsp.class
    │               └── index_jsp.java
    ├── docs
    ├── examples
    ├── host-manager  #管理虛擬主機(jī)
    ├── manager
    │   └── org
    │       └── apache
    │           └── jsp
    │               └── WEB_002dINF
    │                   └── jsp
    │                       ├── _401_jsp.class
    │                       └── _401_jsp.java
    └── sample

# mkidr  -pv  /usr/local/tomcat/webapps/test/{classes,lib,WEB-INF}
創(chuàng)建文件/usr/local/tomcat/webapps/test/index.jsp
<%@ page language="java" %>
<%@ page import="java.util.*" %>


Test Page


<% out.println("hello world");
%>

六、tomcat的兩個管理應(yīng)用: 1、啟用manager

[root@tomcat-77 ~]# vim /etc/tomcat/tomcat-users.xml 
    
[root@tomcat-77 ~]# systemctl restart tomcat

Java容器Tomcat等中間價原理、安裝、配置和使用方法 Java容器Tomcat等中間價原理、安裝、配置和使用方法 Java容器Tomcat等中間價原理、安裝、配置和使用方法

2、host-manager虛擬主機(jī)管理

[root@tomcat-77 ~]# vim /etc/tomcat/tomcat-users.xml 
 
  
[root@tomcat-77 ~]# systemctl restart tomcat

Java容器Tomcat等中間價原理、安裝、配置和使用方法 Java容器Tomcat等中間價原理、安裝、配置和使用方法 通過gui界面,可以熱部署虛擬主機(jī)

3、tomcat的常用組件配置: Server:代表tomcat instance,即表現(xiàn)出的一個java進(jìn)程;監(jiān)聽在8005端口,只接收“SHUTDOWN”。各server監(jiān)聽的端口不能相同,因此,在同一物理主機(jī)啟動多個實例時,需要修改其監(jiān)聽端口為不同的端口; Service:用于實現(xiàn)將一個或多個connector組件關(guān)聯(lián)至一個engine組件;

4、Connector連接器組件: 負(fù)責(zé)接收請求,常見的有三類http/https/ajp; 進(jìn)入tomcat的請求可分為兩類: (1) standalone : 請求來自于客戶端瀏覽器; (2) 由其它的web server反代:來自前端的反代服務(wù)器; 情況一:nginx反代 --> http connector --> tomcat 情況二: httpd(proxy_http_module)反代 --> http connector --> tomcat httpd(proxy_ajp_module)反代 --> ajp connector --> tomcat 情況三:httpd(mod_jk) --> ajp connector --> tomcat

5、Connector連接器屬性:

port="8080" #監(jiān)聽的端口 protocol="HTTP/1.1" #協(xié)議 connectionTimeout="20000" #超時時間 address:監(jiān)聽的IP地址;默認(rèn)為本機(jī)所有可用地址; maxThreads:最大并發(fā)連接數(shù),默認(rèn)為200; enableLookups:是否啟用DNS查詢功能,提升性能建議關(guān)閉; acceptCount:等待隊列的最大長度; secure:安全 sslProtocol:

6、Engine容器組件: Servlet實例,即servlet引擎,其內(nèi)部可以一個或多個host組件來定義站點; 通常需要通過defaultHost來定義默認(rèn)的虛擬主機(jī); Engine容器組件屬性:

name= #名稱 defaultHost="localhost" #默認(rèn)主機(jī) jvmRoute= :jvm的路由標(biāo)識

7、Host組件: 位于engine內(nèi)部用于接收請求并進(jìn)行相應(yīng)處理的主機(jī)或虛擬主機(jī)

示例:
 #自動部署

常用屬性說明: (1) appBase:此Host的webapps的默認(rèn)存放目錄,指存放非歸檔的web應(yīng)用程序的目錄或歸檔的WAR文件目錄路徑;可以使用基于$CATALINA_BASE變量所定義的路徑的相對路徑; (2) autoDeploy:在Tomcat處于運行狀態(tài)時,將某webapp放置于appBase所定義的目錄中時,是否自動將其部署至tomcat;

示例:
#自動部署


# mkdir -pv /appdata/webapps #創(chuàng)建存儲目錄
# mkdir -pv /appdata/webapps/ROOT/{lib,classes,WEB-INF}     #創(chuàng)建目錄,站點部署到root路徑下

提供一個測試頁即可;

8、Context組件:

示例:
 #訪問url路徑,然后被指定其他路徑上,可以被重新裝載

9、Valve組件:

#這里"是引號的意思,%r用戶的請求內(nèi)容

Valve存在多種類型: 定義訪問日志:org.apache.catalina.valves.AccessLogValve 定義訪問控制:org.apache.catalina.valves.RemoteAddrValve tomcat日志路徑:/var/log/tomcat/

綜合示例:


   #訪問url為test,文檔路徑為tmp/test,可以被重新裝載
  #記錄日志格式

七、tomcat反代配置 1、LNMT架構(gòu) Client (http) --> nginx (reverse proxy)(http) --> tomcat (http connector)

nginx連接器

nginx反代設(shè)置:
vim /etc/nginx/conf.d/ilinux.conf
server {
     listen 80;  #監(jiān)聽端口
      server_name www.ilinux.io; #服務(wù)名稱 
location / {
proxy_pass http://192.168.1.15:80;  #匹配靜態(tài)內(nèi)容到后端靜態(tài)主機(jī)的80端口
}

location ~* \.(jsp|do)$ {
proxy_pass http://192.168.1.16:8080; #匹配動態(tài)jsp內(nèi)容到后端Tomcat主機(jī)
}

2、LAMT架構(gòu) Linux Apache(httpd) MySQL Tomcat httpd的代理模塊:

proxy_module:反代核心模塊 proxy_http_module:適配http協(xié)議客戶端; proxy_ajp_module:適配ajp協(xié)議客戶端;

Client (http) --> httpd (proxy_http_module)(http) --> tomcat (http connector) Client (http) --> httpd (proxy_ajp_module)(ajp) --> tomcat (ajp connector) Client (http) --> httpd (mod_jk)(ajp) --> tomcat (ajp connector)

http連接器:使用proxy_http_module模塊反向代理

#proxy_http_module代理配置示例:
  #定義虛擬主機(jī)
ServerName      tc1.ilinux.io
ProxyRequests Off   #關(guān)閉正向代理
ProxyVia        On     #在響應(yīng)報文中加via
ProxyPreserveHost On  #請求報文轉(zhuǎn)發(fā)到后端

    Require all granted #反代功能可以由那些用戶使用

#如果后端有多個虛擬主機(jī),不能使用ip地址
ProxyPass / http://192.168.1.15:8080/ #后端tomcat主機(jī)地址端口  
ProxyPassReverse / http://192.168.1.15:8080/ #返回重定向 

Require all granted  #此url可以被誰訪問

ajp連接器:使用proxy_ajp_module代理

#proxy_ajp_module代理配置示例

ServerName      tc1.ilinux.io
ProxyRequests Off#關(guān)閉正向代理
ProxyVia        On     #在響應(yīng)報文中加via
ProxyPreserveHost On

Require all granted#反代功能可以由那些用戶使用

#如果后端有多個虛擬主機(jī),不能使用ip地址
ProxyPass / ajp://http://192.168.1.15:8009/  后端tomcat主機(jī)地址端口  
ProxyPassReverse / ajp://http://192.168.1.15:8009/

Require all granted#此url可以被誰訪問

八、Tomcat的常用優(yōu)化配置: 1 、內(nèi)存空間管理: Java容器Tomcat等中間價原理、安裝、配置和使用方法 Java容器Tomcat等中間價原理、安裝、配置和使用方法 Java容器Tomcat等中間價原理、安裝、配置和使用方法 編輯/etc/sysconfig/tomcat

 #重要不能超過32G!!!!!!!!!!!
JAVA_OPTS="-server -Xms32g -Xmx32g -XX:NewSize= -XX:MaxNewSize= -XX:PermSize= -XX:MaxPermSize=" 
#實驗添加:
JAVA_OPTS= "-Xmx512m"  -Xms"512m"

server:服務(wù)器模型 Xms:堆內(nèi)存初始化大?。?Xmx:堆內(nèi)存空間上限; XX:NewSize=:新生代空間初始化大??; XX:MaxNewSize=:新生代空間最大值; XX:PermSize=:持久代空間初始化大小; XX:MaxPermSize=:持久代空間最大值;

2、線程池設(shè)置:

常用屬性:

maxThreads:最大線程數(shù); minSpareThreads:最小空閑線程數(shù); maxSpareThreads:最大空閑線程數(shù); acceptCount:等待隊列的最大長度; URIEncoding:URI地址編碼格式,建議使用UTF-8; enableLookups:是否啟用dns解析,建議禁用; compression:是否啟用傳輸壓縮機(jī)制,建議“on"; compressionMinSize:啟用壓縮傳輸?shù)臄?shù)據(jù)流最小值,單位是字節(jié); compressableMimeType:定義啟用壓縮功能的MIME類型; text/html, text/xml, text/css, text/javascript

3)、禁用8005端口;

(4) 隱藏版本信息:



Server="SOME STRING"   #加上自定義字符串

九、JVM常用的分析工具:

JVM的分析工具有: jps:用來查看運行的所有jvm進(jìn)程; jinfo:查看進(jìn)程的運行環(huán)境參數(shù),主要是jvm命令行參數(shù); jstat:對jvm應(yīng)用程序的資源和性能進(jìn)行實時監(jiān)控; jstack:查看所有線程的運行狀態(tài); jmap:查看jvm占用物理內(nèi)存的狀態(tài); jconsole:圖形界面,是一個內(nèi)置 Java 性能分析器,對資源消耗和性能進(jìn)行監(jiān)控; jvisualvm:圖形界面,用來監(jiān)控JVM的運行情況的插件; 1、jps工具 jps:Java虛擬機(jī)進(jìn)程狀態(tài)工具, 格式: jps [-q] [-mlvV] [] -q:靜默模式; -v:顯示傳遞給jvm的命令行參數(shù); -m:輸出傳入main方法的參數(shù); -l:輸出main類或jar完全限定名稱; -V:顯示通過flag文件傳遞給jvm的參數(shù); []:主機(jī)id,默認(rèn)為localhost;

2、jinfo工具 jinfo:輸出給定的java進(jìn)程的所有配置信息;

格式: jinfo [option] -flags:to print VM flags打印標(biāo)志位 -sysprops:to print Java system properties -flag :to print the value of the named VM flag

3、jstack工具 jstack:查看指定的java進(jìn)程的線程棧的相關(guān)信息;

格式: jstack [-l] jstack -F [-m] [-l] -l:long listings,會顯示額外的鎖信息,因此,發(fā)生死鎖時常用此選項; -m:混合模式,既輸出java堆棧信息,也輸出C/C++堆棧信息; -F:當(dāng)使用“jstack -l PID"無響應(yīng),可以使用-F強制輸出信息;

感謝各位的閱讀,以上就是“Java容器Tomcat等中間價原理、安裝、配置和使用方法”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Java容器Tomcat等中間價原理、安裝、配置和使用方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


網(wǎng)站題目:Java容器Tomcat等中間價原理、安裝、配置和使用方法
標(biāo)題路徑:http://weahome.cn/article/jpscgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部