溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Tomcat全攻略

發(fā)布時間:2020-04-15 05:59:42 來源:網(wǎng)絡(luò) 閱讀:921 作者:PowerMichael 欄目:建站服務(wù)器

tomcat全攻略

  1.tomcat是什么?

     Tomcat 服務(wù)器是一個免費的開放源代碼的Web 應(yīng)用服務(wù)器,它早期的名稱為catalina,后來由Apache、Sun 和其他一些公司及個人共同開發(fā)而成,并更名為Tomcat。Tomcat是應(yīng)用(java)服務(wù)器,它是一個servlet容器,是Apache的擴展,但它是獨立運行的。tomat應(yīng)用于Java Servlet, JavaServer Pages,Java Expression Language以及其他的Javaweb開發(fā)的技術(shù)。

                 The Apache Tomcat software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. The Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket specifications are developed under the Java Community Process.The Apache Tomcat software is developed in an open and participatory environment and released under the Apache License version 2. The Apache Tomcat project is intended to be a collaboration of the best-of-breed developers from around the world. We invite you to participate in this open development project. To learn more about getting involved, click here.

Apache Tomcat software powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations. Some of these users and their stories are listed on the PoweredBy wiki page.

Apache Tomcat, Tomcat, Apache, the Apache feather, and the Apache Tomcat project logo are trademarks of the Apache Software Foundation.

--from http://tomcat.apache.org/

   2.tomcat yum安裝

      1.yum安裝jdk

    yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel 

      2.yum安裝tomcat

        yum install -y tomcat, tomcat-lib, tomcat-admin-webapps, tomcat-webapps, tomcat-docs-webapp

    3.tomcat rpm包程序環(huán)境

    1.查看程序環(huán)境方式

    rpm -ql tomcat

    2.環(huán)境介紹

    配置文件目錄:/etc/tomcat

    主配置文件:server.xml 

    webapps存放位置:/var/lib/tomcat/webapps/

      examples

       manager

       host-manager

       docs

       Unit File:tomcat.service

    環(huán)境配置文件:/etc/sysconfig/tomcat

    4.tomcat配置文件構(gòu)成

    server.xml:主配置文件;

    web.xml:每個webapp只有“部署”后才能被訪問,它的部署方式通常由web.xml進行定義,其存放位置為WEB-INF目錄中;web.xml文件為所有的webapps提供默認(rèn)部署相關(guān)的配置;

    context.xml:每個webapp都可以專用的配置文件,它通常由專用的配置文件context.xml來定義,其存放位置為WEB-INF目錄中;context.xml文件為所有的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)的配置;

     5.Tomcat的核心組件:server.xml 

    <Server>
        <Service>
            <connector/>
            <connector/>
            ...
            <Engine>
                <Host>
                     <Context/>
                     <Context/>
                    ...
                 </Host>
                 <Host>
                  ...
                 </Host>
                  ...
            Engine>
        </Service>
    </Server>

Tomcat全攻略

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

    頂級組件:Server

    服務(wù)類組件:Service

    連接器組件:http, https, ajp(apache jserv protocol)

    容器類:Engine, Host, Context

    被嵌套類:valve, logger, realm, loader, manager, ...

    集群類組件:listener, cluster, ...

    6.JSP WebAPP介紹

        tomcat能夠運行JSP WebAPP?,F(xiàn)在主流大型的web電商web服務(wù)都是用JSP開發(fā)的。下面介紹JSP WebAPP。

    6.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格式;

    6.2 webapp歸檔格式

        .war:webapp

        .jar:EJB的類打包文件;

        .rar:資源適配器類打包文件;

        .ear:企業(yè)級webapp;

    

    6.3 部署(deploy)webapp的相關(guān)操作:

        deploy:將webapp的源文件放置于目標(biāo)目錄(網(wǎng)頁程序文件存放目錄),配置tomcat服務(wù)器能夠基于web.xml和context.xml文件中定義的路徑來訪問此webapp;將其特有的類和依賴的類通過class loader裝載至JVM;

        部署有兩種方式:

        1.自動部署:auto deploy

        2.手動部署:

         2.1 冷部署:把webapp復(fù)制到指定的位置(rpm安裝的tomcat在/var/lib/tomcat/webapps),而后才啟動tomcat;

        2.2 熱部署:在不停止tomcat的前提下進行部署;

            熱部署的部署工具有:manager、ant腳本、tcd(tomcat client deployer)等;

        undeploy:反部署,停止webapp,并從tomcat實例上卸載webapp;

        start:啟動處于停止?fàn)顟B(tài)的webapp;

        stop:停止webapp,不再向用戶提供服務(wù);其類依然在jvm上;

        redeploy:重新部署;

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

 mkidr  -pv  /usr/local/tomcat/webapps/test/{classes,lib,WEB-INF}   #創(chuàng)建JSP WebAPP相關(guān)的目錄以及文件
 vi /usr/local/tomcat/webapps/test/index.jsp                        #手動創(chuàng)建一個WebAPP應(yīng)用
<%@ page language="java" %>
<%@ page import="java.util.*" %>
    <html>
        <head>
            <title>Test Page</title>
        </head>
        <body>
            <% out.println("hello world");
            %>
        </body>
    </html>

        6.4.1 通過瀏覽器訪問測試

Tomcat全攻略

    7.Tomcat的常用組件配置

        7.1 Server

            代表tomcat instance,即表現(xiàn)出的一個java進程;監(jiān)聽在8005端口,只接收“SHUTDOWN”。各server監(jiān)聽的端口不能相同,因此,在同一物理主機啟動多個實例時,需要修改其監(jiān)聽端口為不同的端口; 

        7.2 Service

            用于實現(xiàn)將一個或多個connector組件關(guān)聯(lián)至一個engine組件;

        7.3 Connector組件

        負(fù)責(zé)接收請求,常見的有三類http/https/ajp;

        進入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

        Connector屬性:

            port="8080" 

            protocol="HTTP/1.1"

            connectionTimeout="20000"

            address:監(jiān)聽的IP地址;默認(rèn)為本機所有可用地址;

            maxThreads:最大并發(fā)連接數(shù),默認(rèn)為200;

            enableLookups:是否啟用DNS查詢功能;

            acceptCount:等待隊列的最大長度;

            secure:安全相關(guān)

            sslProtocol:ssl安全協(xié)議

        7.4 Engine組件

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

屬性:

name=

defaultHost="localhost"

jvmRoute=

        7.5 Host組件

            位于engine內(nèi)部用于接收請求并進行相應(yīng)處理的主機或虛擬主機,示例:

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

        常用屬性說明:

        (1) appBase:此Host的webapps的默認(rèn)存放目錄,指存放非歸檔的web應(yīng)用程序的目錄或歸檔的WAR文件目錄路徑;可以使用基于$CATALINA_BASE變量所定義的路徑的相對路徑;

        (2) autoDeploy:在Tomcat處于運行狀態(tài)時,將某webapp放置于appBase所定義的目錄中時,是否自動將其部署至tomcat;

        示例1:       

<Host name="www.huwho.cn" appBase="/appdata/huwho" unpackWARs="true" autoDeploy="true">
</Host>
mkdir -pv /appdata/huwho      #創(chuàng)建webapps的存放目錄
mkdir -pv /appdata/huwho/ROOT/{lib,classes,WEB-INF}   #創(chuàng)建webapp的相關(guān)文件
vi /appdata/huwho/ROOT/index.jsp         #提供一個測試頁即可
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
    <title>Test Page</title>
</head>
<body>
    <% out.println("tomcat server node1");
    %>
</body>
</html>

        通過瀏覽器訪問測試:            

Tomcat全攻略

        示例2:JSP WebAPP部署應(yīng)用

            注:在示例1實驗的基礎(chǔ)上進行此實驗,確保目錄在/appdata/huwho,進行如下操作

            下載此壓縮包:shopxx-a5-Beta.zip

            解壓:unzip shopxx-a5-Beta.zip

            創(chuàng)建軟鏈接:ln -sv shop shopxx-v3.0-Beta

                瀏覽器訪問測試

Tomcat全攻略

    7.6 Context組件

            Context組件是最內(nèi)層次的組件,它表示W(wǎng)eb應(yīng)用程序本身。配置一個Context最主要的是指定Web應(yīng)用程序的根目錄,以便Servlet容器能夠?qū)⒂脩粽埱蟀l(fā)往正確的位置。

官方示例:

<Context path="/PATH" docBase="/PATH/TO/SOMEDIR" reloadable=""/>

            在上面實驗的基礎(chǔ)上加入context組件內(nèi)容

   
   vi /etc/tomcat/server.xml
     <Host name="www.huwho.cn" appBase="/appdata/huwho" unpackWARs="true" autoDeploy="true">
       <Context path="/e-shop" docBase="/e-shop/eshop" reloadable="true"/>
       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="huwho_access_log." suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        </Host>
   mkdir -pv /e-shop
    cd /e-shop
   mv shopxx-v3.0-Beta /e-shop/
   ln -sv eshop shopxx-v3.0-Beta

             瀏覽器訪問測試

Tomcat全攻略

        7.7 Valve組件

            用來攔截請求并在將其轉(zhuǎn)至目標(biāo)之前進行某種處理操作,類似于Servlet規(guī)范中定義的過濾器。

<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" />

            Valve存在多種類型:

            定義訪問日志:

org.apache.catalina.valves.AccessLogValve

            定義訪問控制:

org.apache.catalina.valves.RemoteAddrValve 
 <Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="172\.16\.100\.67"/>

    8.Tomcat的兩個管理應(yīng)用

        Tomcat有它自己的管理應(yīng)用,我們只需要經(jīng)過簡單的配置就可以啟用它。

一個是manager,另一個是host-manager。

 vi tomcat-users.xml  #配置文件中加入以下三行開啟tomcat管理應(yīng)用 
 <role rolename="admin-gui"/>
 <role rolename="manager-gui"/>
 <user username="tomcat" password="123456" roles="manager-gui,admin-gui"/>

        配置好了,讓我們通過瀏覽器訪問瞧瞧。點擊圖中標(biāo)識的位置,就可以進入管理中心了。

Tomcat全攻略

        提示輸入賬號以及密碼。根據(jù)配置文件自己配置的賬號密碼,輸入即可。

Tomcat全攻略

        查看管理頁面

Tomcat全攻略

Tomcat全攻略

    9.Tomcat集群部署

     9.1 nt(nginx+tomcat)

        1.nginx反向代理Tomcat示例

    server {
        server_name www.huwho.cn;
        listen 80;
        location  / {
        proxy_pass http://192.168.0.13:8080;
        }
        location ~* \.(jsp|do) {
        proxy_pass http://192.168.0.13:8080;
      }

        打開瀏覽器測試,nginx代理成功Tomcat全攻略

        2.nginx負(fù)載均衡反向代理Tomcat示例

    vi /etc/nginx/nginx.conf     #http{}段中加入如下內(nèi)容
    
        upstream tcsrvs {
        #hash $request_uri consistent;
        server 192.168.0.13:8080;
        server 192.168.0.14:8080;
    }
    vi /etc/nginx/conf.d/huwho.conf
        server {
        server_name www.huwho.com;
        listen 80;
        location  / {
        proxy_pass http://tcsrvs; 
        }
      }

    打開瀏覽器測試,web頁面正常訪問,且能訪問兩臺Tomat主機

Tomcat全攻略

Tomcat全攻略

    9.2 at(httpd+tomcat)

     1.httpd反向代理Tomat示例

vi /etc/httpd/conf.d/huwho.conf  
    <VirtualHost *:80>
    ServerName www.huwho.cn
    ProxyRequests Off
    ProxyVia On
    ProxyPreserveHost On
    <Proxy *>
    Require all granted
    </Proxy>
    ProxyPass / http://192.168.0.13:8080/
    ProxyPa***everse / http://192.168.0.13:8080/
    <Location />
    Require all granted
    </Location>
    </VirtualHost>

Tomcat全攻略

   2.proxy_http_module代理配置示例(代理+負(fù)載均衡)

    cat httpd-tomcat.huwho.conf
    <Proxy balancer://tcsrvs>
        BalancerMember http://192.168.0.13:8080 loadfactor=1
        BalancerMember http://192.168.0.14:8080 loadfactor=2
        
        ProxySet lbmethod=byrequests
    </Proxy>
    
    <VirtualHost *:80>
        ServerName www.huwho.cn
        ProxyRequests Off
        ProxyVia On
        ProxyPreserveHost On
        <Proxy *>
            Require all granted
        </Proxy>
        ProxyPass / balancer://tcsrvs/
        ProxyPa***everse / balancer://tcsrvs/ 
        <Location />
            Require all granted
         </Location>
        <Location /balancer-manager>
            SetHandler balancer-manager
            ProxyPass !
            Require  ip 10.0.0.1
        </Location>
    </VirtualHost>

Tomcat全攻略

Tomcat全攻略

            打開瀏覽器測試,web頁面正常訪問,且能訪問兩臺Tomat主機

   3. proxy_ajp_module代理配置示例(代理+負(fù)載均衡)

    [root@httpd conf.d]# cat http-ajp-huwho.conf 
    <Proxy balancer://ajsrvs>
        BalancerMember ajp://192.168.0.13:8009
        BalancerMember ajp://192.168.0.14:8009
        ProxySet lbmethod=byrequests
    </Proxy>
    
    
    <VirtualHost *:80>
        ServerName ajp.huwho.cn
        ProxyRequests Off
        ProxyVia On
        ProxyPreserveHost On
        <Proxy *>
            Require all granted
        </Proxy>
        ProxyPass / balancer://ajsrvs/
        ProxyPa***everse / balancer://ajsrvs/
        <Location />
            Require all granted
        </Location>
    </VirtualHost>

Tomcat全攻略Tomcat全攻略

         打開瀏覽器測試,web頁面正常訪問,且能訪問兩臺Tomat主機

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI