欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          Tomcat介紹、安裝配置以及簡(jiǎn)單的實(shí)現(xiàn)Tomcat負(fù)載均衡

          Tomcat介紹、安裝配置以及簡(jiǎn)單的實(shí)現(xiàn)Tomcat負(fù)載均衡

          壓測(cè)工具:JMeter

          一、軟件架構(gòu)模式

          1、分層架構(gòu):表現(xiàn)層,業(yè)務(wù)層,持久層,數(shù)據(jù)庫(kù)層

          2、事件驅(qū)動(dòng)架構(gòu):分布式異構(gòu)架構(gòu),高度解耦,大型應(yīng)用場(chǎng)景

          3、微內(nèi)核架構(gòu):插件式架構(gòu),各種功能以插件形式對(duì)接到核心上

          4、微服務(wù)架構(gòu):整體系統(tǒng)功能中每一項(xiàng)功能,只要功能能夠單獨(dú)調(diào)用,每個(gè)功能就做成一個(gè)單元?;贏PI REST-based,application REST-based,中心化消息

          5、基于空間的架構(gòu):云架構(gòu)

          二、webapp容器

          tomcat,jetty,resin

          jboss

          websphere,weblogic

          三、Java相關(guān)

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

          2、java編程語(yǔ)言,是一種企業(yè)級(jí)應(yīng)用程序

          JDK:java development kit,java的開(kāi)發(fā)工具

          JRE:java運(yùn)行開(kāi)發(fā)環(huán)境,JVM+標(biāo)準(zhǔn)庫(kù)組成

          JVM:java虛擬機(jī)

          openjdk:開(kāi)源社區(qū)版jdk

          3、tomcat是只實(shí)現(xiàn)了java2EE的JSP和servlet,配置上的關(guān)鍵標(biāo)識(shí)符是catalina

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

          四、tomcat相關(guān)

          1、端口使用

          使用8080端口,http協(xié)議,tomcat user

          使用8443端口,https協(xié)議

          使用8009端口,ajp協(xié)議,在http做反向代理時(shí)候使用

          ajp:apache jserv protocol

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

          3、動(dòng)+靜結(jié)合:LNMT或者LAMT

          五、JDK的部署

          1、tomcat的運(yùn)行之前需要部署JDK

          2、Oracle JDK的部署

          oracle網(wǎng)站進(jìn)入后下載

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

          解壓縮后進(jìn)入目錄

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

          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,同一程序多版本并存時(shí)候選擇默認(rèn)版本

          六、tomcat的安裝

          1、二進(jìn)制安裝

          (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)配置啟動(dòng)過(guò)程

          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后啟動(dòng)

          訪問(wèn)8080端口頁(yè)面就出來(lái)了

          2、第二種安裝

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

          安裝好后systemctl start tomcat

          注:后三個(gè)tomcat-docs-webapp tomcat-admin-webapps tomcat-webapps為應(yīng)用程序,不需要可以不裝

          七、jsp相關(guān)

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

          .jsp通過(guò)Jasper翻譯為.java,再編譯為javac,最后轉(zhuǎn)換成.class類文件

          Test Page

          <%language=java

          %>

          八、tomcat的目錄結(jié)構(gòu)

          1、目錄說(shuō)明

          bin:腳本,及啟動(dòng)時(shí)用到的類;

          conf:配置文件目錄;

          lib:庫(kù)文件,Java類庫(kù),jar;

          logs:日志文件目錄;

          temp:臨時(shí)文件目錄;

          webapps:webapp的默認(rèn)目錄;

          work:工作目錄;

          2、rpm包安裝的程序環(huán)境:

          配置文件目錄:/etc/tomcat

          主配置文件:server.xml

          工作目錄webapps默認(rèn)存放位置:/var/lib/tomcat/webapps/

          examples

          manager

          host-manager

          docs

          Unit File:tomcat.service

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

          當(dāng)/var/lib/tomcat/webapps/ROOT/test/index.jsp,訪問(wèn)對(duì)應(yīng)host:8080/test就是訪問(wèn)的該目錄

          3、tomcat的配置文件構(gòu)成:

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

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

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

          (4)tomcat-users.xml:用戶認(rèn)證的賬號(hào)和密碼文件;

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

          (6)catalina.properties:Java屬性的定義文件,用于設(shè)定類加載器路徑,以及一些與JVM調(diào)優(yōu)相關(guān)參數(shù);

          (7)logging.properties:日志系統(tǒng)相關(guān)的配置; log4j

          九、tomcat配置文件

          1、tomcat配置結(jié)構(gòu)

          server {

          service {

          conntor { } —-》一個(gè)service中可以多個(gè)conntor對(duì)應(yīng)一個(gè)engine

          engine { —-》每個(gè)service只能有一個(gè)engine

          host { } —-》engine中可以有多個(gè)host

          host {

          context { }

          }

          }

          }

          }

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

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

          頂級(jí)組件:Server

          服務(wù)類組件:Service

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

          容器類:Engine, Host, Context

          被嵌套類:valve(對(duì)用戶的請(qǐng)求過(guò)濾), logger, realm, loader, manager, …

          集群類組件:listener, cluster, …

          九、WebApp的組織架構(gòu)

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

          /: webapps的根目錄

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

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

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

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

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

          2、webapp歸檔格式:

          .war:webapp

          .jar:EJB的類打包文件;

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

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

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

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

          (2)部署有兩種方式:

          自動(dòng)部署:auto deploy

          手動(dòng)部署:

          冷部署:把webapp復(fù)制到指定的位置,而后才啟動(dòng)tomcat;

          熱部署:在不停止tomcat的前提下進(jìn)行部署;

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

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

          start:?jiǎn)?dòng)處于停止?fàn)顟B(tài)的webapp;

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

          redeploy:重新部署;

          (3)手動(dòng)提供一測(cè)試類應(yīng)用,并冷部署:

          # 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.*" %>

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

          %>

          十、tomcat的兩個(gè)管理應(yīng)用:

          manager:管理webapps應(yīng)用程序

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

          1、manager:管理webapps應(yīng)用程序

          如果登錄這兩個(gè)應(yīng)用,需要去配置目錄tomcat-users.xml里編輯

          二進(jìn)制目錄在tomcat/conf/下

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

          更改后重啟tomcat,之后可以點(diǎn)擊進(jìn)入Manager App

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

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

          1、Server:代表tomcat instance,即表現(xiàn)出的一個(gè)java進(jìn)程;監(jiān)聽(tīng)在8005端口,只接收“SHUTDOWN”。各server監(jiān)聽(tīng)的端口不能相同,因此,在同一物理主機(jī)啟動(dòng)多個(gè)實(shí)例時(shí),需要修改其監(jiān)聽(tīng)端口為不同的端口;

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

          2、Service:用于實(shí)現(xiàn)將一個(gè)或多個(gè)connector組件關(guān)聯(lián)至一個(gè)engine組件;

          3、Connector組件:端點(diǎn),定義tomcat所監(jiān)聽(tīng)的地址和端口,不屬于任何host,而屬于整個(gè)tomcat

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

          進(jìn)入tomcat的請(qǐng)求可分為兩類:

          (1)standalone : 請(qǐng)求來(lái)自于客戶端瀏覽器;

          (2)由其它的web server反代:來(lái)自前端的反代服務(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

          屬性:

          port="8080"

          protocol="HTTP/1.1"

          connectionTimeout="20000"

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

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

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

          acceptCount:等待隊(duì)列的最大長(zhǎng)度;

          secure:

          sslProtocol:

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

          屬性:

          name=

          defaultHost="localhost"

          jvmRoute=

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

          unpackWARs="true" autoDeploy="true">

          Webapp ARchives

          常用屬性說(shuō)明:

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

          (2)unpackWARs,是否自動(dòng)解壓

          (3)autoDeploy:自動(dòng)部署,在Tomcat處于運(yùn)行狀態(tài)時(shí),將某webapp放置于appBase所定義的目錄中時(shí),是否自動(dòng)將其部署至tomcat;,生產(chǎn)環(huán)境中不建議自動(dòng)部署,關(guān)閉該功能

          示例:部署tomcat

          安裝好openjdk、tomcat后,我們?nèi)绻胍⒁粋€(gè)其它的工作目錄來(lái)存放以后的項(xiàng)目,首先在配置文件server.xml中有

          其次,手動(dòng)建立目錄

          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");

          %>

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

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

          ln -sv test-0.1 test

          最后形成的tree形圖為

          結(jié)果圖

          灰度發(fā)布示例:

          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

          訪問(wèn)下a.chen.com

          Valve存在多種類型:

          定義訪問(wèn)日志:org.apache.catalina.valves.AccessLogValve

          定義訪問(wèn)控制:org.apache.catalina.valves.RemoteAddrValve

          舉例:兩種方式

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

          十一、App Manager

          1、實(shí)例列表

          2、圖形界面熱部署

          十二、tomcat的反向代理

          1、NT架構(gòu)中,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反代不能進(jìn)入Manager App或者Host Manager,需要更進(jìn)一步的定義規(guī)則通過(guò)rewrite進(jìn)入

          2、AT架構(gòu)

          (1)LAMT: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)

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

          結(jié)果

          http反代可以進(jìn)入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

          同樣可以進(jìn)入Manager App或者Host Manager

          十三、keepalived實(shí)現(xiàn)nginx對(duì)tomcat的負(fù)載均衡調(diào)度

          1、準(zhǔn)備nginx一主一從調(diào)度器,兩臺(tái)的/etc/nginx/nginx.conf都是這么寫

          配置這兩臺(tái)主機(jī)的keepalived.conf

          2、準(zhǔn)備兩臺(tái)tomcat主機(jī)

          192.168.239.72和192.168.239.73

          配置nginx.conf頁(yè)面

          3、測(cè)試

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)