Tomcat初級

2017-11-03_190947.jpg

Tomcat是由Apache軟件基金會下屬的Jakarta項目開發的一個Servlet容器,按照Sun Microsystems提供的技術規範,實現了對Servlet和JavaServer Page(JSP)的支持,並提供了做爲web服務器的一些特有功能,如Tomcat管理和控制平臺、安全域管理和Tomcat閾等。可是不能將Tomcat和Apache HTTP服務器混淆,Apache HTTP服務器時一個用C語言實現的HTTP web服務器,而Tomcat則是由Java編寫。html

1、java

Java是一種普遍使用的計算機編程語言,擁有跨平臺、面向對象、泛型編程的特性,普遍應用於企業級Web應用開發和移動應用開發。Java的特色之一面向對象,是程序設計方法的一種。java

程序是由指令和數據組成。
過程式編程:以指令爲中心,數據服務於代碼
對象式編程:以數據位中,指令服務於數據

一、Java代碼編譯過程

java%E8%BF%87%E7%A8%8B.png

用java語言編譯源代碼,經過JAVAC (Java complie)它編譯成java .class(bytes code)文件,而後在Java VM中運行.class文件;當編寫程序時,經過調用類(API class)中的方法來訪問系統資源,而當程序運行時,它經過調用class文件中實現Java API的方法來知足程序的Java API調用。Java VM 和Java API一塊兒組成一個平臺,被稱爲JDK(Java Development Kit),全部的Java程序都在其上編譯和運行。mysql

Java VM主要任務時裝載class文件而且執行其中的字節碼,加載程序的類文件即程序的類文件依賴到的其餘的類文件然後運行,整個運行表現爲一個jvm進程。它包含一個類裝載器(class loader)能夠從程序和API裝載class文件;可是Java API的類只在程序執行中須要時纔會裝載。linux

二、Java API

Java SE包含了Java二進制程序(如JVM和Java字碼編譯器)和Java的核心代碼庫;而Java EE標準則包含了一組適用於建立企業級Web應用程序API。Java EE是創建在Java SE基礎之上;它包含了多個獨立的API,如Servlet和JSP等nginx

三、Java VM 內部體系結構

2017-11-03_200219.jpg

方法區線程共享,用於存儲被JVM加載的class信息、常量、靜態變量、方法等程序員

JVM所管理的內存中佔用空間最大的一部分;也是GC管理的主要區域;存儲對象web

線程私有,存儲線程本身的局部變量正則表達式

PC寄存器線程私有的內存空間,程序的指令指針sql

本地方法棧執行引擎調用本地方法是的運行時聶村去數據庫

JVM的功能模塊主要包括類加載器、執行引擎和垃圾回收系統。

-- JVM組成

JRE(JVM+java SE API):是用於實現java程序運行的最小環境
JDK(Java+API+JVM):是用於實現Java程序開發的最小環境

三、JSP代碼運行過程

tomcat-http-guocheng.jpg

index.jsp-->jasper-->servert Source Code(.java)-->Java Compiler (.class)-->在JVM虛擬機上運行

注意:基於jasper將靜態輸出的數據轉爲java代碼進行輸出,結果爲servlet規範的代碼。

2、Tomcat

Tomcat不是一個完整意義上的Java EE服務器,甚至沒有提供對一個主要java EE API。因爲遵照apache開源協議,tomcat爲衆多java應用程序服務器嵌入本身的產品中構建商業的java應用程序服務器,如JBoss等

一、JSP和Servlet區別

Servlet一般須要實現編譯好,而JSP則並不是必須事先編譯。這意味着Servlet一般放置於私有資源區域,而JSP則一般以嵌入代碼的方式包含於HTML頁面文件中,這些HTML文件一般放置在公開資源區域。

二、MVC架構

MVC架構由Contoller、Model和View構成,實現Apache Structs框架。

a、Servlet用於實現應用邏輯
b、JSP用於內容展現
c、標籤庫和JSP擴展語言用於替換JSP內部嵌入Java代碼,進而下降了HTML維護的複雜度
d、MVC框架用於實現展現和應用邏輯分離

三、Servlet目錄結構

對於一個web應用程序而言,其一般由Servlet、JSP和其餘文件等共同組成。這些文件一般被打包成WAR(Web Application Archive)格式,並以.war做爲打包後的文件擴展名。而Servlet規範則定義了在WAR內部組織這些文件的標準目錄結構。

/   :web應用程序的根目錄,全部可被公開訪問的文件均放置於此處,如HTML、JSP和圖片文件等
/WEB-INF :此目錄爲私有資源目錄,其內部的全部文件和子目錄不能被公開訪問;包含此web應用程序的配置文件web.xml,一般放置於此目錄
/WEB-INF/classes:當前web應用程序的類文件存在目錄
/WEB-INF/lib:可被打包爲JAR格式的類文件一般放置於此目錄

java-http.png

四、Tomcat目錄

bin:腳本,即啓動時用到的類
conf:配置文件目錄
lib:庫文件,Java類庫,jar
logs:日誌文件目錄
temp:臨時文件目錄
webapps:webapp的默認目錄
work:工做目錄,存放編譯後的字節碼文件

五、Tomcat文件

  • server.xml tomcat主配置文件,包含service、connector、engine、realm、valve、host相關配置信息

  • web.xml 每一個webapp只有「部署」後才能被訪問,它的部署方式一般有web.xml進行定義,其存放的位置爲WEB-INF/目錄下,次文件爲全部的webapps提供默認部署相關的配置

  • context.xml 每一個文本app均可以使用的配置文件,它一般有專用的配置文件contest.xml來定義,其存放位置爲WEB-INF/目錄下

  • tomcat-user.xml realm認證時用到的相關角色、用戶和密碼等信息;tomcat自帶的manager默認狀況下會用到此文件。此文件在tomcat啓動時被裝入內存

  • catalina.policy 當使用-security選項啓動tomcat時,用於爲tomcat設置安全策略

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

  • logging.properties 日誌系統相關的配置

server.xml組件

2017-11-03_221835.jpg

Tomcat組件

頂級組件:位於配置層次的頂級,而且彼此間有着嚴格的對應關係(server、service)
鏈接器:鏈接客戶端請求至servlet(connector)
容器:包含一組其餘組件(engine、host、context)
被嵌套的組件:位於一個容器當中,但不能包含其餘組件(valve、logger、realm)





        <Server>
            <Service>
                <connector/>
                <connector/>
                ...
                <Engine>
                    <Host>
                        <Context/>
                        <Context/>
                        ...
                    </Host>
                    <Host>
                        ...
                    </Host>
                    ...
                </Engine>
            </Service>
        </Server>
tomcat經常使用組件配置
  • server:表明tomcat instance,即表現出一個java進程;監聽在8005端口,只能接受「SHUTDOWN」指令。各server監聽的端口不能相同,所以在同一物理主機啓動多個示例時,須要修改其監聽端口爲不一樣的端口。這個端口的定義爲管理員提供一個關閉此示例的便捷途徑,管理員能夠直接使用telnet命令鏈接此端口SHUTDOWN關閉此示例。基於安全角度考慮,一般不容許遠程進行

  • service:用於實現將一個或多個connector組件關聯至一個engine組件

    className:用於實現service的類名 name:此服務的名稱,默認爲catalina

  • connector:負責接收請求,常見的有三類http、https、ajp

    address:指定鏈接器監聽的地址,默認爲全部地址maxThreads:支持的最大併發鏈接數,默認爲200 port:監聽的端口,默認爲0 protocol:鏈接器使用的協議,默認爲HTTP/1.1,定義AJP協議時一般爲AJP/1.3redirectPort:若是某鏈接器支持的協議時HTTP,當接收客戶端發來的HTTPS請求時則轉發至此屬性的定義端口connectionTimeout:等待客戶端發送請求的超時時間,單位爲毫秒,默認爲6000 enableLookups:是否經過request.getRemoteHost()便是否啓用DNS查詢功能acceptCount:設置等待隊列的最大長度

  • engine: servlet示例,即servlet引擎,其內部能夠一個或多個host組件來定義站點;一般須要defaultHost屬性來爲其定義一個接受全部發往非明肯定義虛擬主機的請求的host組件

    name:engine組件的名稱,用於日誌和錯誤信息記錄時卻別不一樣的引擎

  • host:位於engine內部用於接受請求並進行響應處理的主機或虛擬主機

    appBase:此host的webapps的默認存放目錄,指存放非歸檔的web應用程序的目錄或歸檔的WAR文件目錄路徑;可使用基於$CATALINA_BASE變量所定義的路徑的相對路徑 autoDepoly:在tomcat處於運動狀態時,將某webapp放置於appBase所定義的目錄中,是否自動將其部署至tomcat;默認爲true unpackWars:在啓用此webapss時是否對WAR格式的歸檔文件先進行展開,默認爲true

主機別名定義:若是一個主機有兩個或兩個以上的主機名,額外的名稱都可以以別名的形式進行定義

示例

<Host name="www.test.com" appBase="webapps" unpackWARS="true">
    <Alias>test.com</Alias>
</Host>
  • context:context在某些意義上相似於apache的路徑別名,一個context定義用於表示tomcat示例中的一個web應用程序

    docBase:相應的web應用程序存放位置;也可使用相對路徑,起始路徑爲Context所屬Host中appBase定義的路徑;切記,docBase的路徑名不能與相應的Host中的appBase中定義的路徑名有包含關係,好比appBase爲deploy,而docBase決不能爲deploy-bbs類的名字 path:相對於web服務器根目錄而言的URI,若是爲空,則表示爲webapp的根路徑;若是context定義了一個單獨的xml文件,此屬性不須要定義 reloadable:是否容許從新加載此context相關的web應用程序類,默認爲false

示例

<Context path="/path" docBase="/path/to/somedir" reloadable=""/>
  • realm:一個realm表示一個安全上下文,受權訪問某個給定context的用戶列表和某用戶所容許切換角色相關定義的列表

  • valve: 相似於過濾器,valve定義的次序決定了他們的生效次序。

    RemoteHostValve:基於遠程主機名稱的訪問控制 RemouteAddrValve:基於遠程地址的訪問控制

    控制自己能夠經過allow或deny來進行定義,這有點相似於apache的訪問控制功能

示例:

<Context path="/test" docBase="test">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1"/>
</Context>


*className*:相關的java實現的類名
*allow*:以逗號分開的容許訪問的IP地址列表,支持正則表達式,使用「.」須要轉義;僅定義allow選項是,被明確allow的地址均被deny
*deny*:以逗號分開的禁止訪問IP地址列表,支持正則表達式,使用方式同allow

部署(deploy)webapp相關操做

將webapp的源文件放置於目標目錄,配置tomcat服務器可以基於web.xml和context.xml文件中定義的路徑來訪問webapp;將其特有的類和依賴的類經過class loader裝載至JVM中

部署方式:

    (1)自動部署auto deploy
    (2)手動部署

            冷部署:把webapp複製到指定的位置,然後才能啓動tomcat
            熱部署:在不中止tomcat的前提下進行部署
                部署工具:manager、ant腳本、tcd(tomcat client deployer)

        undeploy:拆除(反部署),中止webapp,並從tomcat示例上卸載webapp
        start:啓動處於中止狀態的webapp
        stop:中止webapp,再也不向用戶提供服務,其類亦然在jvm上
        redeploy:從新部署

六、啓動manager功能

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="standard"/>
<user username="tomcat" password="secret" roles="admin-gui,manager-script,standard"/>

七、tomcat請求的分類

(1)standalone:請求來自客戶端瀏覽器
(2)由其餘的web server反代,來自前段的反代服務器
        nginx-->http connector -->tomcat
        httpd(proxy_http_module)-->http connector-->tomcat
        httpd(proxy_ajp_module)-->ajp connector -->tomcat
        http(mod_jk)-->ajp connector -->tomcat

3、Tomcat安裝

方式一:

使用yum源安裝便可

(1)安裝jdk環境,因爲base源提供了三個不一樣版本的jdk環境,根據咱們的須要自行安裝所須要的版本

[root@localhost~]#yum install -y java-1.8.0-openjdk-src

[root@localhost~]#java -version #查看是否安裝成功

若是多 版本並存時,可以使用alternatives命令設定默認使用的版本。

(2)安裝tomcat

[root@localhost~]#yum install -y tomcat tomcat-admin-webapps tomcat-docs-webapp tomcat-webapps tomcat-libs

[root@localhost~]#systemctl start tomcat.service #啓動服務

2017-11-04_093049.jpg

方式二:

(1)從官網下載rpm安裝jdk

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

[root@localhost~]#rpm -ivh jdk-8u144-linux-x64.rpm

[root@localhost~]#java -version #測試是否安裝成功

(2)二進制安裝tomcat

https://tomcat.apache.org/download-80.cgi

[root@localhost~]#tar xf apache-tomcat-7.0.78.tar.gz -C /usr/local/#解壓縮

[root@localhost~]#cd /usr/local/

[root@localhost/usr/local]#ln -sv apache-tomcat-7.0.78/ tomcat#建立軟鏈接

[root@localhost/usr/local/tomcat]#vim /etc/profile.d/tomcat.sh#修改環境變量

  1 export CATALINA_BASE=/usr/local/tomcat
  2 export PATH=$CATALINA_BASE/bin:$PATH

修改權限

[root@localhost/usr/local]#useradd -r tomcat #建立用戶

[root@localhost/usr/local]#chown -R :tomcat tomcat/ #修改配置文件所屬組

[root@localhost/usr/local/tomcat]#chown tomcat ./{logs,temp,work,webapps}

[root@localhost/usr/local/tomcat]#source /etc/profile.d/tomcat.sh#使環境變量生效

(3)重啓服務測試

[root@localhost/usr/local/tomcat/bin]#catalina.sh --help

Usage: catalina.sh ( commands ... )
commands:
  debug             Start Catalina in a debugger
  debug -security   Debug Catalina with a security manager
  jpda start        Start Catalina under JPDA debugger
  run               Start Catalina in the current window
  run -security     Start in the current window with security manager
  start             Start Catalina in a separate window
  start -security   Start in a separate window with security manager
  stop              Stop Catalina, waiting up to 5 seconds for the process to end
  stop n            Stop Catalina, waiting up to n seconds for the process to end
  stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
  stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running
  configtest        Run a basic syntax check on server.xml - check exit code for result
  version           What version of tomcat are you running?

[root@localhost~]#mkdir test/{logs,temp,work,webapps} -pv

[root@localhost~]#chown -R tomcat test/{logs,temp,work,webapps}

[root@localhost/usr/local/tomcat/bin]#catalina.sh start#啓動服務

2017-11-04_101732.jpg

建議通常以普通用戶運行tomcat

4、示例

一、冷部署方法

(1)建立所須要的目錄

[root@localhost~]#mkdir test/{classes,lib,WEB-INF} -pv

(2)建立index.jsp文件

[root@localhost~]#vim test/index.jsp

  1  <%@ page language="java" %>
  2  <%@ page import="java.util.*" %>
  3  <html>
  4          <head>
  5                  <title>Test Page</title>
  6          </head>
  7          <body>
  8                  <% out.println("hello world");
  9                  %>
 10          </body>
 11  </html>

(3)將test目錄移動到webapps目錄下

[root@localhost~]#cp -r test/ /usr/share/tomcat/webapps/

(4)重啓服務測試

[root@localhost~]#systemctl start tomcat

2017-11-04_110703.jpg

若是是程序員將打包好的jar文件發給咱們,能夠將此包直接防止webapps目錄下,能夠自行部署

(5)查看部署過程

[root@localhost/usr/share/tomcat/work/Catalina/localhost]#tree test/

test/
└── org
    └── apache
        └── jsp
            ├── index_jsp.class
            └── index_jsp.java

二、手動使用SHUTDOWN關閉服務

(1)首先先查看下咱們的服務是否正常運行

2017-11-04_111511.jpg

(2)使用telnet鏈接關閉服務

2017-11-04_111645.jpg

此時咱們再看服務已經沒有開啓了,爲了防止惡意之人,咱們須要將命令修改成隨機數等等

[root@localhost/etc/tomcat]#openssl rand -hex 20

fb8a9c1a78827dcb81950feca0e18c6d4470997e

2017-11-04_111922.jpg

三、建立站點

[root@localhost/etc/tomcat]#vim server.xml

2017-11-04_113352.jpg

[root@localhost/etc/tomcat]#mkdir -pv /app/webapps

[root@localhost/etc/tomcat]#mkdir -pv /app/webapps/ROOT/{lib,classes,WEB-INF}

[root@localhost/etc/tomcat]#cp /usr/share/tomcat/webapps/test/index.jsp /app/webapps/ROOT/#建立站點文件

重啓服務測試

[root@localhost/etc/tomcat]#systemctl start tomcat

[root@localhost/etc/tomcat]#curl www.test.com:8080

 <html>
         <head>
                 <title>Test Page</title>
         </head>
         <body>
                 hello world

         </body>
 </html>

出現上述結果正常,使用的是curl命令沒有作修改

[root@localhost/etc/tomcat]#links www.test.com:8080

2017-11-04_113653.jpg

四、修改conext組件至關於修改別名

(1)建立目錄

[root@localhost~]#cp -r test/ /data/test

(2)編輯server.xml文件

[root@localhost~]#vim /etc/tomcat/server.xml

2017-11-04_114918.jpg

(3)編輯index.jsp文件

[root@localhost/data/test]#vim index.jsp

  1  <%@ page language="java" %>
  2  <%@ page import="java.util.*" %>
  3  <html>
  4          <head>
  5                  <title>Test Page</title>
  6          </head>
  7          <body>
  8                  <% out.println("hello tomcat");
  9                  %>
 10          </body>
 11  </html>

(4)重啓服務測試

[root@localhost/data/test]#links www.test.com:8080/test

2017-11-04_114840.jpg

五、啓動web-gui管理

2017-11-04_115428.jpg

(1)若是咱們想啓用Server Status功能須要認證,若是咱們點擊cancle則出現指示方法

2017-11-04_141848.jpg

(2)修改tomcat-user.xml配置文件

[root@localhost/etc/tomcat]#vim tomcat-users.xml

2017-11-04_142628.jpg

(3)重啓tomcat服務測試

[root@localhost/etc/tomcat]#systemctl restart tomcat

2017-11-04_142853.jpg

2017-11-04_142837.jpg

2017-11-04_142908.jpg

五、禁止或容許某個或某些遠程IP主機管理

(1)編輯server.xml配置文件

[root@localhost/etc/tomcat]#vim server.xml

2017-11-04_143912.jpg

(2)測試

2017-11-04_144159.jpg

禁止此IP訪問沒有顯示內容

那麼接下來咱們容許此IP訪問並再次重啓服務測試

2017-11-04_144330.jpg

六、LNMT環境搭建

2017-11-04_203254.jpg

安裝mysql數據庫

(1)安裝mysql並配置環境

[root@mysql ~]# yum install -y mysql-server

[root@mysql ~]# service httpd start #啓動服務

[root@mysql ~]# mysql_secure_installation #mysql安全初始化

(2)建立數據庫並受權用戶

[root@mysql ~]# mysql -uroot -p

mysql> CREATE DATABASE testprocess;

mysql> GRANT ALL ON testprocess.* TO 'joah'@'192.168.4.61' IDENTIFIED BY '123456';

tomcat

(1)安裝jdk環境

[root@tomcat/etc/tomcat]#yum install -y java-1.8.0-openjdk-src

(2)安裝tomcat

[root@tomcat~]#yum install -y tomcat tomcat-lib tomcat-admin-webapps tomcat-docs tomcat-webapps

(3)啓動服務測試是否成功

[root@tomcat~]#systemctl enable tomcat #設置爲開機自動啓動

[root@tomcat~]#systemctl start tomcat #啓動服務

2017-11-04_172452.jpg

使tomcat與mysql能夠鏈接

MySQL Connector / J是一個本地Java驅動程序,能夠將JDBC(Java Database Connectivity)調用MySQL數據庫使用的網絡協議。

(1)安裝mysql-connector-java

[root@tomcat~]#yum install -y mysql-connector-java #用於使用java鏈接mysql數據庫

[root@tomcat~]#cp /usr/share/java/mysql-connector-java.jar /usr/share/tomcat/lib/將此壓縮包複製到此目錄下,自動安裝部署

[root@tomcat~]#systemctl restart tomcat #重啓服務

(2)修改mysql中的配置文件

[root@mysql ~]# vim /etc/my.cnf

2017-11-04_192749.jpg

[root@mysql ~]# service mysqld restart #重啓服務

查看是否生效

2017-11-04_193113.jpg

建立數據庫並受權

mysql> CREATE DATABASE tomcat;

mysql> CREATE TABLE tom(id int,name varchar(40));
mysql> insert into tom values(1,'test');


mysql> GRANT ALL ON tomcat.* TO 'joah'@'192.168.4.61' IDENTIFIED BY '123456';

測試是否成功

[root@tomcat~]#mysql -ujoah -p -h 192.168.4.56

編輯test.jsp文件

[root@tomcat/usr/share/tomcat/webapps/ROOT]#vim test.jsp

  1 <%@ page contentType="text/html;charset=utf-8"%>
  2 <%@ page import="java.sql.*"%>
  3 <html>
  4     <body>
  5     <%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  6       String url ="jdbc:mysql://192.168.4.56(此處須要換成mysql的地址)/tomcat?user=joah(鏈接數據庫使用的名字)&password=123456(鏈接數據庫的密碼)&useUnicode=tr    ue&characterEncoding=utf-8";
  7       Connection conn= DriverManager.getConnection(url);
  8       Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_    UPDATABLE);
  9       String sql="select * from tom(鏈接數據庫中的表)";
 10       ResultSet rs=stmt.executeQuery(sql);
 11       while(rs.next()) {%>
 12       step:<%=rs.getString(1)%>
 13       context:<%=rs.getString(2)%><br><br><%}
 14      %>
 15      
 16     <%out.print("Congratulations!!! JSP connect MYSQL IS OK!!");%>
 17     <%rs.close();
 18       stmt.close();
 19       conn.close();
 20     %>
 21 </body>
 22 </html>

2017-11-04_195820.jpg

修改nginx.conf配置文件

[root@nginx/etc/nginx]#vim nginx.conf

 47         location / {
 48             proxy_pass http://192.168.4.61:8080;
 49         }
 50         location ~*\.(jsp|do)$ {
 51                 proxy_pass http://test.com:8080;
 52         }

[root@nginx/etc/nginx]#nginx -t

[root@nginx/etc/nginx]#systemctl restart nginx #重啓服務測試

重啓服務測試

2017-11-04_185820.jpg

至此咱們的LNMT環境搭建成功

七、LAMT環境搭建

2017-11-04_203337.jpg

(1)apache安裝

[root@web~]#yum install -y httpd

[root@web~]#systemctl enable httpd #設置開機啓動

[root@web~]#systemctl start httpd.service #啓動服務

(2)修改配置文件httpd.conf

基於http鏈接

查看是否有支持http協議的代理模塊

[root@web/etc/httpd/conf]#httpd -M |grep http

 proxy_http_module (shared)

編輯配置文件

[root@web/etc/httpd/conf.d]#vim host.conf

  1 <VirtualHost *:80>
  2         ServerName www.test.com
  3         ProxyRequests off   關閉正向代理
  4         ProxyVia    on     是否記錄代理
  5         ProxyPreserveHost on    #開啓保留主機名
  6         <Proxy *>
  7                 Require all granted
  8         </Proxy>
  9         ProxyPass / http://192.168.4.61:8080/
 10         ProxyPa***everse / http://192.168.4.61:8080/
 11         <Location />
 12                 Require all granted
 13         </Location>
 14 </VirtualHost>

重啓服務測試

[root@web/etc/httpd/conf.d]#systemctl restart httpd.service

2017-11-04_202353.jpg

基於AJP協議鏈接

查看是否加載了支持ajp協議的反向代理模塊

[root@web/etc/httpd/conf]#httpd -M |grep ajp

 proxy_ajp_module (shared)

編輯配置文件

[root@web/etc/httpd/conf.d]#vim host.conf

  1 <VirtualHost *:80>
  2         ServerName www.test.com
  3         ProxyRequests off
  4         ProxyVia    on
  5         ProxyPreserveHost on
  6         <Proxy *>
  7                 Require all granted
  8         </Proxy>
  9         ProxyPass / ajp://192.168.4.61:8009/
 10         ProxyPa***everse / ajp://192.168.4.61:8009/
 11         <Location />
 12                 Require all granted
 13         </Location>
 14 </VirtualHost>

重啓服務測試

2017-11-04_202353.jpg

後續的安裝和LNMT的安裝方法同樣,就再也不累述。

八、實現以下topology

2017-11-04_204237.jpg

相關文章
相關標籤/搜索