站長資訊網
        最全最豐富的資訊網站

        Tomcat介紹、安裝配置以及簡單的實現Tomcat負載均衡

        Tomcat介紹、安裝配置以及簡單的實現Tomcat負載均衡

        壓測工具:JMeter

        一、軟件架構模式

        1、分層架構:表現層,業務層,持久層,數據庫層

        2、事件驅動架構:分布式異構架構,高度解耦,大型應用場景

        3、微內核架構:插件式架構,各種功能以插件形式對接到核心上

        4、微服務架構:整體系統功能中每一項功能,只要功能能夠單獨調用,每個功能就做成一個單元。基于API REST-based,application REST-based,中心化消息

        5、基于空間的架構:云架構

        二、webapp容器

        tomcat,jetty,resin

        jboss

        websphere,weblogic

        三、Java相關

        1、tomcat由java程序編寫,是為了更好支持其它java而編寫的,比如說jsp(java server page)

        2、java編程語言,是一種企業級應用程序

        JDK:java development kit,java的開發工具

        JRE:java運行開發環境,JVM+標準庫組成

        JVM:java虛擬機

        openjdk:開源社區版jdk

        3、tomcat是只實現了java2EE的JSP和servlet,配置上的關鍵標識符是catalina

        4、JDK 6就是JDK 1.6版,JDK 6u1就是JDK 1.6版本第一次升級

        四、tomcat相關

        1、端口使用

        使用8080端口,http協議,tomcat user

        使用8443端口,https協議

        使用8009端口,ajp協議,在http做反向代理時候使用

        ajp:apache jserv protocol

        2、.do和.jsp文件傳遞給tomcat處理

        3、動+靜結合:LNMT或者LAMT

        五、JDK的部署

        1、tomcat的運行之前需要部署JDK

        2、Oracle JDK的部署

        oracle網站進入后下載

        rpm -ivh jdk-8u191-linux-x64.rpm

        解壓縮后進入目錄

        default/bin/下有很多腳本,如果想使用這些腳本,需要添加環境變量

        vim /etc/profile.d/java.sh

        JAVA_HOME=/usr/java/latest

        PATH=$JAVA_HOME/bin:$PATH

        export JAVA_HOME PATH

        完成后,java -version就可以顯示

        3、Open JDK的部署

        yum info all java*

        yum -y install java-1.8.0-openjdk-devel

        4、alternatives,同一程序多版本并存時候選擇默認版本

        六、tomcat的安裝

        1、二進制安裝

        (1)wget http://URL或者下載

        tar xf apache-tomcat-xxx.tar.gz -C /usr/local

        cd /usr/local

        ln -sv apache-tomcat-xxx tomcat

        (2)配置文件:目錄下/conf/server.xml

        (3)配置啟動過程

        useradd tomcat -s /sbin/nologin

        cd tomcat/

        chown -R :tomcat ./*

        chown -R tomcat logs/ temp/ work/

        chmod g+rx conf/

        vim /etc/profile.d/tomcat.sh

        CATALINA_BASE=/usr/local/tomcat

        PATH=$CATALINA_BASE/bin:$PATH

        export CATALINA_BASE PATH

        exec bash

        catalina.sh start后啟動

        訪問8080端口頁面就出來了

        2、第二種安裝

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

        安裝好后systemctl start tomcat

        注:后三個tomcat-docs-webapp tomcat-admin-webapps tomcat-webapps為應用程序,不需要可以不裝

        七、jsp相關

        1、.jsp ->Jasper -> .java ->javac ->.class

        .jsp通過Jasper翻譯為.java,再編譯為javac,最后轉換成.class類文件

        Test Page

        <%language=java

        %>

        八、tomcat的目錄結構

        1、目錄說明

        bin:腳本,及啟動時用到的類;

        conf:配置文件目錄;

        lib:庫文件,Java類庫,jar;

        logs:日志文件目錄;

        temp:臨時文件目錄;

        webapps:webapp的默認目錄;

        work:工作目錄;

        2、rpm包安裝的程序環境:

        配置文件目錄:/etc/tomcat

        主配置文件:server.xml

        工作目錄webapps默認存放位置:/var/lib/tomcat/webapps/

        examples

        manager

        host-manager

        docs

        Unit File:tomcat.service

        環境配置文件:/etc/sysconfig/tomcat

        當/var/lib/tomcat/webapps/ROOT/test/index.jsp,訪問對應host:8080/test就是訪問的該目錄

        3、tomcat的配置文件構成:

        (1)server.xml:主配置文件;

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

        (3)context.xml:每個webapp都可以專用的配置文件,它通常由專用的配置文件context.xml來定義,其存放位置為WEB-INF/目錄中;此文件為所有的webapps提供默認配置;

        (4)tomcat-users.xml:用戶認證的賬號和密碼文件;

        (5)catalina.policy:當使用-security選項啟動tomcat時,用于為tomcat設置安全策略(除非有特別配置上的需要,否則不建議使用-security選項);

        (6)catalina.properties:Java屬性的定義文件,用于設定類加載器路徑,以及一些與JVM調優相關參數;

        (7)logging.properties:日志系統相關的配置; log4j

        九、tomcat配置文件

        1、tomcat配置結構

        server {

        service {

        conntor { } —-》一個service中可以多個conntor對應一個engine

        engine { —-》每個service只能有一個engine

        host { } —-》engine中可以有多個host

        host {

        context { }

        }

        }

        }

        }

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

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

        頂級組件:Server

        服務類組件:Service

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

        容器類:Engine, Host, Context

        被嵌套類:valve(對用戶的請求過濾), logger, realm, loader, manager, …

        集群類組件:listener, cluster, …

        九、WebApp的組織架構

        1、JSP WebAPP的組織結構:

        /: webapps的根目錄

        (1)index.jsp, index.html:主頁;

        (2)WEB-INF/:當前webapp的私有資源路徑;通常用于存儲當前webapp的web.xml和context.xml配置文件;

        (3)META-INF/:類似于WEB-INF/;

        (4)classes/:類文件,當前webapp所提供的類;

        (5)lib/:類文件,當前webapp所提供的類,被打包為jar格式;

        2、webapp歸檔格式:

        .war:webapp

        .jar:EJB的類打包文件;

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

        .ear:企業級webapp;

        3、部署(deploy)webapp的相關操作:

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

        (2)部署有兩種方式:

        自動部署:auto deploy

        手動部署:

        冷部署:把webapp復制到指定的位置,而后才啟動tomcat;

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

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

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

        start:啟動處于停止狀態的webapp;

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

        redeploy:重新部署;

        (3)手動提供一測試類應用,并冷部署:

        # mkidr -pv /usr/local/tomcat/webapps/test/{classes,lib,WEB-INF}

        創建文件/usr/local/tomcat/webapps/test/index.jsp

        <%@ page language="java" %>

        <%@ page import="java.util.*" %>

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

        %>

        十、tomcat的兩個管理應用:

        manager:管理webapps應用程序

        host-manager:管理虛擬主機

        1、manager:管理webapps應用程序

        如果登錄這兩個應用,需要去配置目錄tomcat-users.xml里編輯

        二進制目錄在tomcat/conf/下

        rpm包安裝在/etc/tomcat/tomcat.conf

        更改后重啟tomcat,之后可以點擊進入Manager App

        2、host-manager:管理虛擬主機

        十一、tomcat的常用組件配置:

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

        注意:server.xml不要讓其他用戶有讀權限,chmod o= /etc/tomcat/server.xml

        2、Service:用于實現將一個或多個connector組件關聯至一個engine組件;

        3、Connector組件:端點,定義tomcat所監聽的地址和端口,不屬于任何host,而屬于整個tomcat

        負責接收請求,常見的有三類http/https/ajp;

        進入tomcat的請求可分為兩類:

        (1)standalone : 請求來自于客戶端瀏覽器;

        (2)由其它的web server反代:來自前端的反代服務器;

        nginx –> http connector –> tomcat

        httpd(proxy_http_module) –> http connector –> tomcat

        httpd(proxy_ajp_module) –> ajp connector –> tomcat

        httpd(mod_jk) –> ajp connector –> tomcat

        屬性:

        port="8080"

        protocol="HTTP/1.1"

        connectionTimeout="20000"

        address:監聽的IP地址;默認為本機所有可用地址;

        maxThreads:最大并發連接數,默認為200;

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

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

        secure:

        sslProtocol:

        4、Engine組件:Servlet實例,即servlet引擎,其內部可以一個或多個host組件來定義站點; 通常需要通過defaultHost屬性來定義默認的虛擬主機;

        屬性:

        name=

        defaultHost="localhost"

        jvmRoute=

        5、Host組件:位于engine內部用于接收請求并進行相應處理的主機或虛擬主機,示例:

        unpackWARs="true" autoDeploy="true">

        Webapp ARchives

        常用屬性說明:

        (1)appBase:此Host的webapps的默認存放目錄,指存放非歸檔的web應用程序的目錄或歸檔的WAR文件目錄路徑,類似于apache的/var/×××w/html;如果使用的是相對路徑,則是相對于$CATALINA_BASE變量的相對路徑;

        (2)unpackWARs,是否自動解壓

        (3)autoDeploy:自動部署,在Tomcat處于運行狀態時,將某webapp放置于appBase所定義的目錄中時,是否自動將其部署至tomcat;,生產環境中不建議自動部署,關閉該功能

        示例:部署tomcat

        安裝好openjdk、tomcat后,我們如果想要建立一個其它的工作目錄來存放以后的項目,首先在配置文件server.xml中有

        其次,手動建立目錄

        mkdir /app/webapps/ROOT/{classes,lib,WEB-INF}

        mkdir /app/webapps/test-0.1/{classes,lib,WEB-INF}

        vim /app/webapps/test-0.1/index.jsp

        <%@ page language="java" %>

        <%@ page import="java.util.*" %>

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

        %>

        之后由你自己決定是否要虛擬主機的主頁,如果要,拷貝默認目錄下ROOT目錄的內容到手建目錄下ROOT。如果需要Manager App和Host Manager,還需要將host-manager和manager兩個目錄一并拷貝至此

        為了便于做灰度發布,可以在工作目錄/app/webapps為目錄做軟鏈接

        ln -sv test-0.1 test

        最后形成的tree形圖為

        結果圖

        灰度發布示例:

        image.pngimage.png

        6、Context組件:

        示例:

        綜合示例:

        prefix="node1_access" suffix=".log"

        pattern="%h %l %u %t "%r" %s %b" />

        prefix="node1_test_access_" suffix=".log"

        pattern="%h %l %u %t "%r" %s %b" />

        7、Valve組件:

        valve,閥門,控制組件

        prefix="localhost_access_log" suffix=".txt"

        pattern="%h %l %u %t "%r" %s %b" />

        https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/AccessLogValve.html

        訪問下a.chen.com

        Valve存在多種類型:

        定義訪問日志:org.apache.catalina.valves.AccessLogValve

        定義訪問控制:org.apache.catalina.valves.RemoteAddrValve

        舉例:兩種方式

        注意:tomcat只支持基于主機名的虛擬主機,不支持IP地址

        十一、App Manager

        1、實例列表

        2、圖形界面熱部署

        十二、tomcat的反向代理

        1、NT架構中,nginx將.jsp和.do格式代理給tomcat

        LNMT:Linux Nginx MySQL Tomcat

        Client (http) –> nginx (reverse proxy)(http) –> tomcat (http connector)

        location / {

        proxy_pass http://tc1.magedu.com:8080;

        }

        location ~* .(jsp|do)$ {

        proxy_pass http://tc1.magedu.com:8080;

        }

        這么寫入后nginx反代不能進入Manager App或者Host Manager,需要更進一步的定義規則通過rewrite進入

        2、AT架構

        (1)LAMT:Linux Apache(httpd) MySQL Tomcat

        httpd的代理模塊:

        proxy_module

        proxy_http_module:適配http協議客戶端;

        proxy_ajp_module:適配ajp協議客戶端;

        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)

        (2)proxy_http_module代理配置示例:

        ServerName a.chen.com

        ProxyRequests Off

        ProxyVia On

        ProxyPreserveHost On

        Require all granted

        ProxyPass / http://a.chen.com:8080/

        ProxyPa***everse / http://a.chen.com:8080/

        Require all granted

        ProxyPass / http://a.chen.com:8080/

        結果

        http反代可以進入Manager App或者Host Manager

        (3)proxy_ajp_module代理配置示例:

        ServerName a.chen.com

        ProxyRequests Off

        ProxyVia On

        ProxyPreserveHost On

        Require all granted

        ProxyPass / ajp://a.chen.com:8009/

        ProxyPa***everse / ajp://a.chen.com:8009/

        Require all granted

        同樣可以進入Manager App或者Host Manager

        十三、keepalived實現nginx對tomcat的負載均衡調度

        1、準備nginx一主一從調度器,兩臺的/etc/nginx/nginx.conf都是這么寫

        配置這兩臺主機的keepalived.conf

        2、準備兩臺tomcat主機

        192.168.239.72和192.168.239.73

        配置nginx.conf頁面

        3、測試

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: www.日韩精品| 亚洲精品456播放| 一本色道久久88—综合亚洲精品| 久久国产乱子伦精品免费强| 亚洲中文久久精品无码| 精品a在线观看| 一级香蕉精品视频在线播放| 精品国产福利一区二区| 一本精品中文字幕在线| 久久久久亚洲精品中文字幕| 99久久伊人精品综合观看| 国产国产成人精品久久| 精品无码国产一区二区三区51安 | 亚洲国产成人久久精品影视| 精品国产午夜理论片不卡| 中文字幕日韩精品有码视频| 国产综合精品蜜芽| 国产69精品久久久久9999| 成人精品视频在线观看| 精品永久久福利一区二区| 真实国产精品vr专区| 天天爽夜夜爽夜夜爽精品视频| 精品人妻少妇一区二区| 国产精品亚洲综合专区片高清久久久| 欧美精品国产日韩综合在线| 久久99精品国产| 精品国产福利第一区二区三区| 2020久久精品国产免费| 国产精品亚洲一区二区三区在线 | 在线精品亚洲一区二区| 亚洲精品WWW久久久久久| 亚洲成网777777国产精品| 欧美亚洲综合免费精品高清在线观看| 蜜桃麻豆www久久国产精品| 久久久久久久亚洲精品| 久久精品国产精品亚洲| 久久se这里只有精品| 久久精品夜色噜噜亚洲A∨| 精品无码国产污污污免费网站国产 | 一本一道久久精品综合| 久久精品一区二区国产|