; 107-tomcat | Linux运维部落

107-tomcat

一.编程语言基础

 1.1 编程语言:

硬件级:微码编程,汇编语言
系统级:C,C++,…
应用级:Java, PHP, Python, Ruby, Perl, C#, …
Python: PVM
Standard Library
Web Framework:Django, Flask, …
Java:JVM,JDK
bash:bash explainer


1.2 程序简要概念

           程序:指令+数据
过程式编程:以指令为中心,数据服务于代码;
对象式编程:以数据为中心,指令服务于数据;
对象,方法(method)


二.java基础概念

2.1 Java 历史:

Sun, Green Project, Oak,  James Gosling;
1995:Java 1.0, Write once, Run Anywhere;
1996:JDK(Java Development Kit),包含类库、开发工具(javac)、JVM(SUN Classic VM)
JDK 1.0,  Applet, AWT
1997:JDK 1.1
1998: JDK  1.2
Sun分拆Java技术为三个方向:
J2SE:Standard Edition
J2EE:Enterprise Edition
J2ME:Mobile Edition

代表性技术:EJB,java plugin, Swing, JIT(Just In Time,即时编译)

2000:JDK 1.3
HotSpot VM
2002:JDK 1.4

2006:Sun开源了Java技术,GPL,建立一个称为OpenJDK组织;
Java 2 SE, Java 2 EE, Java 2 ME

2011:JDK 1.7
2014:JDK 1.8
2016:JDK 1.9

2.2  Java代码的运行流程:

   *.java(source code源代码) –> javac(编译工具) –> *.class(bytecode,字节码,类文件)
   jvm:class loader,加载程序的类文件,及程序的类文件依赖到的其它的类文件而后运行; 

                     整个运行表现为一个jvm进程;

            threads;
#备注: 目前,单jvm进程运行内存超过32G时候,会导致内存泄露等错误

2.3  java技术体系:

Java编程语言
Java Class文件格式
Java API 
Java VM 
class loader
执行引擎

2.4 JVM运行时的内存区域:

                    

 

                  class loader: 负责将代码加载到指定内存空间

                 GC: 垃圾清理器,用于清理堆中的垃圾

                 方法区:线程; 用于存储被JVM加载的class信息、常量、静态变量、方法等;
堆:是jvm所管理的内存中占用空间最大的一部分;也是GC管理的主要区域;用于存储对象;

                       每个对象有对应的引用计数器,当计数器值为0,则会被GC认为是垃圾而清出
Java栈:线程私有,存储 线程自己的局部变量;存放上下文
PC寄存器:线程私有的内存空间,程序的指令指针;
本地方法栈:调用本地的C库或者命令等本地资源时,本地资源的临时存放位置

总结:
Java 2 SE: JDK 
Java 2 EE: (添加了多个类库,组件)
JDK + Servlet, JSP, EJB, JMS, JMX, JavaMail, …

商业实现:
BEA(oracle):WebLogic
IBM:WebSphere
Oracle: oc4j

2.5  java – JDK

2.5.1 JDK

          
           组成架构:
                      

                         JVM : 包含即时编译器
                        JRE:   包含JVM以及编译依赖的各种库
                        JDK:   包含编译工具,编译环境以及以上全部组件

2.5.2 安装JDK

     1.  先有两种JDK ,一种为ORICLE官方的JDK,另一种为开源OPENJDK,两者都可以使用,

               自行选择其中一个即可  

              2.  oricle官方版JDK安装:

 准备好JDK包,直接使用RPM命令安装即可:
                           [root@node74 ~]# rpm -ivh jdk-8u25-linux-x64.rpm 
   安装路径:

[root@node74 ~]# cd /usr/java/

[root@node74 java]# ls

default  jdk1.8.0_25  latest
                       版本指定方式:
                            当多个版本都安装时候,latest软链接到的需要使用的版本,再通过在/etc/profile.d/下定义
                            jdk.sh:
                            export JAVA_HOME=/usr/java/latest
                            export PATH=$JAVA_HOME/sbin:$PATH 

       

               3. openJDK安装:

                             1)  base仓库中已经默认包含有,直接使用YUM安装即可

                                  通常需要安装如下几个:

                                   java-###-openjdk   java-###-openjdk-devel  java-##-openjdk-headless

                    

                     2 )  安装相应版本的rpm包;

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

           了解当前的java环境:
 ~]# java  -version

2.5.3   OpenJDK 

java-VERSION-openjdk:
The OpenJDK runtime environment.
java-VERSION-openjdk-headless:
The OpenJDK runtime environment without audio and video support.
java-VERSION-openjdk-devel:
The OpenJDK development tools.

注意:多版本并存时,可使用 alternatives命令设定默认使用的版本;



注意:安装完成后,要配置JAVA_HOME环境变量,指向java的安装路径;
OpenJDK:
JAVA_HOME=/usr
Oracle JDK:
JAVA_HOME=/usr/java/jdk_VERSION



2.5.3  Java 2 EE:

CGI: Common Gateway Interface

Servlet:

                        成为Servlet container(容器), Servlet Engine
                        #包含了JDK环境,两者合称为servlet engine,也是java代码的实际执行者

                        #遵循CGI规范,自身可以识别并接受HTTP请求,
                    类库;web app;


JSP: Java Server Page
                    #一种将java代码内嵌在的html中的java文件
        
<html>
<title>TITLE</title>
<body>
<h1>…</h1>
<%
… java code…
%>
</body>
</html>
                  一个Jsp网页文件的执行流程:
       jsp –>jasper–> .java –> javac –> .class 
当请求一个jsp网页文件的时候,先由jasper翻译为一个java代码文件,后交给servlet(javac编译器)
                 配置内置的JDK执行代码,并返回给前端.
               注意:基于jasper将静态输出的数据转为java代码进行输出;

Web Container:
Servlet Container

Java Web Server:JWS
ASF:JServ

Tomcat 3.x
Tomcat 4.x
Catalina

http://tomcat.apache.org/

商业实现:
WebSphere, WebLogic, Oc4j, Glassfish, Geronimo, JOnAS, JBoss, …
开源实现:
Tomcat, Jetty, Resin, …

Tomcat: Java 2 EE技术体系的不完整实现; 


三.Tomcat 简介

1.1 核心组件

                  Tomcat的核心组件:server.xml
                   基本格式:
<Server>
<Service>
<connector/>
<connector/>
<Engine>
<Host>
<Context/> #相当于alias
<Context/>
                                                        <Value/>
                                          </Host> #virtual host
<Host>
</Host>
</Engine>
</Service>
</Server>

1.2 组件类型简介

每一个组件都由一个Java“类”实现,这些组件大体可分为以下几个类型:
顶级组件:Server
服务类组件:Service
连接器组件:http, https, ajp
容器类:Engine, Host, Context
被嵌套类:valve, logger, realm, loader, manager, …
集群类组件:listener, cluster, …

1.3. 组件架构:

                                   

 

二. 安装Tomcat:

2.1 依赖环境JDK安装:

               使用oricl官方jdk或者openjdk均可以,base仓库自带的未openjdk
             
           #此处使用官方包安装:
            准备好JDK包,直接使用RPM命令安装即可:
                           [root@node74 ~]# rpm -ivh jdk-8u25-linux-x64.rpm 
            安装路径:
[root@node74 ~]# cd /usr/java/
[root@node74 java]# ls
default  jdk1.8.0_25  latest
            版本指定方式:
                            当多个版本都安装时候,latest软链接到的需要使用的版本,再通过在/etc/profile.d/下定义
                            jdk.sh:
                            export JAVA_HOME=/usr/java/latest
                            export PATH=$JAVA_HOME/sbin:$PATH

2.2 安装方式

                  1. Base Repo:#默认base仓库已经有tomcat ,直接yum安装即可
                         常用安装组合:
tomcat, tomcat-lib, tomcat-admin-webapps, tomcat-webapps, tomcat-docs-webapp
#webapps用于提供WEB管理功能
         2. 源码方式Tomcat binary release:
                            #此方式无需编译,创建软链接既可以安装
 tar xf apache-tomcat-VERSION.tar.gz  -C /usr/local/
cd /usr/local
        ln -sv apache-tomcat-VERSION  tomcat
/etc/profile.d/tomcat.sh 
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_BASE/bin:$PATH
            #此方式下,需要借助catalina.sh 来启动,以及执行其他操作

2.3 tomcat程序环境

1. tomcat的目录结构                    

               #此为使用源码创建软链接形式安装时的程序环境

bin:脚本,及启动时用到的类;
conf:配置文件目录;
lib:库文件,Java类库,jar;
logs:日志文件目录;
temp:临时文件目录;
webapps:webapp的默认目录,即应用程序的根目录
work:工作目录;jsp文件编译为类文件以及执行等涉及的全部过程文件,都放于此处
webapps/host-manager ,manager : WEB GUI管理界面用到的管理程序
                        webapps/doc : 使用文档
                                               使用方式: http://ip:8080/docs/
                        webapps/examle:  示例
                        webapps/ROOT: 默认的应用根目录
2. rpm包安装的程序环境:
配置文件:/etc/tomcat
webapps存放位置:/var/lib/tomcat/webapps/
examples
manager
host-manager
docs
                          # 其他详细环境请自行使用 rpm -ql tomcat 查看既可以


三.tomcat的配置详解:

3.1 yum 安装下的配置文件分类(/etc/tomcat):

server.xml:主配置文件;
web.xml:每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存
                                             放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
context.xml:每个web都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其
                                            存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置;
tomcat-users.xml:用户认证的账号和密码文件;
catalina.policy:当使用-security选项启动tomcat时,用于为tomcat设置安全策略; 
catalina.properties:Java属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关
                                                  参数;
logging.properties:日志系统相关的配置;
#备注:
                        通常使用默认值就足够使用

3.2 catalina.sh 工具

                          #该工具位于tomcat目录的bin下,当使用源码创建软链接形式安装时
                             需要借助此工具
                          #用于综合调用其他脚本来完成各种功能的
          # catalina.sh –help
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@node74 apache-tomcat-8.0.23]# bin/catalina.sh version
Using CATALINA_BASE:   /root/apache-tomcat-8.0.23
Using CATALINA_HOME:   /root/apache-tomcat-8.0.23
Using CATALINA_TMPDIR: /root/apache-tomcat-8.0.23/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /root/apache-tomcat-8.0.23/bin/bootstrap.jar:
                                               /root/apache-tomcat-8.0.23/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.23
Server built:   May 19 2015 14:58:38 UTC
Server number:  8.0.23.0
OS Name:        Linux
OS Version:     3.10.0-327.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_65-b17
JVM Vendor:     Oracle Corporation

3.3 JSP WebAPP的组织结构:

/: webapps的根目录
index.jsp:默认主页;
WEB-INF/:当前webapp的私有资源路径;通常用于存储当前webapp的web.xml和
                                                                      context.xml配置文件;
META-INF/:类似于WEB-INF/;
classes/:类文件,当前webapp所提供的类;
lib/:类文件,当前webapp所提供的类,被打包为jar格式;
     webapp归档格式:
.war:webapp     
                                  #默认使用的java应用文件,一般都打包成此格式
                                  #tomcat可以自动识别解压使用
.jar:EJB的类打包文件;
.rar:资源适配器类打包文件;
.ear:企业级webapp;

3.4 部署(deploy)webapp的相关操作:

1. deploy:将webapp的源文件放置于目标目录(网页程序文件存放目录),配置tomcat服务器能够基于
                                web.xml和context.xml文件中定义的路径来访问此webapp;
                                将其特有的类和依赖的类通过class loader装载至JVM(若不加载相关类,则无法通过http访问到);
                            
               注意: 当手动去为一个新的jsp网页在/webapps下创建根目录时候,需要包含以下几个子目录:
                        webapps/???/ROOT/{classes,lib,WEB-INF}   
                        以及在/???/ROOT/下需要创建一个index.jsp 网页文件以及classes ,lib , WEB-INF子目录
2.     部署有两种方式:
自动部署:auto deploy
手动部署: (需要手动重启tomcat才能生效)
冷部署:把webapp复制到指定的位置,而后才启动tomcat;
热部署:在不停止tomcat的前提下进行部署;
部署工具:manager、ant脚本、tcd(tomcat client deployer)等;
                            

3. 指令:
undeploy:反部署,停止webapp,并从tomcat实例上卸载webapp;
start:启动处于停止状态的webapp;
stop:停止webapp,不再向用户提供服务;其类依然在jvm上;
redeploy:重新部署;
4. 部署路径:
                     yum 安装模式:
                                /var/libtomcat/webapps/
                     源码安装模式:
                               一般位于: /usr/local/tomcat/webapps
                     自定义路径:
                          任意路径均可,但是需要在站点根目录下创建一个ROOT目录,并包含index.jsp 文件, /lib ,/WEB-INF, /classes子目录
                          而不能直接将应用程序文件放在根目录下,必须放于根下的ROOT中
5.     手动提供一测试类应用,并冷部署:
                          #此部署是默认tomcat
# mkdir  -pv  /usr/local/tomcat/webapps/test/{classes,lib,WEB-INF}
创建文件/usr/local/tomcat/webapps/test/index.jsp 
<%@ page language=”java” %>
<%@ page import=”java.util.*” %>
<html>
<head>
<title>Test Page</title>
</head>
<body>
<% out.println(“hello world”);
%>
</body>
</html>

                       部署环境:

[root@node74 webapps]# tree /var/cache/tomcat/work/
/var/cache/tomcat/work/

└── Catalina
└── localhost
├── _
│   └── org
│   └── apache
│   └── jsp
│   ├── index_jsp.class
│   └── index_jsp.java
├── docs
├── examples
├── host-manager
├── manager
├── sample
└── test
└── org
└── apache
└── jsp
├── index_jsp.class
└── index_jsp.java

 


3.5 tomcat的两个管理应用:

                manager
host-manager
           #要使用此功能,需要安装 tomcat-admin-webapps, tomcat-webapps两个包

    使用方式:
                在web gui页面中,点击nanger app/host manager 输入管理员账号密码即可使用
                #注意默认管理功能不开启,需要手动授权账号
               
                授权用户:   #在输入密码时,点击取消,即会出现提示信息
                           在/etc/tomcat/tomcat-user.xml中修改定义:
                            
                            可启用的功能:  #直接取消注释即可, 注释服为”<!–      –>”
                              <!– <role rolename=”admin”/> –>
<!– <role rolename=”admin-gui”/> –>
<!– <role rolename=”admin-script”/> –>
<!– <role rolename=”manager”/> –>
<!– <role rolename=”manager-gui”/> –>
<!– <role rolename=”manager-script”/> –>
<!– <role rolename=”manager-jmx”/> –>
<!– <role rolename=”manager-status”/> –>

授权用户:
            <user username=”role1″ password=”tomcat” roles=”manager-gui“/>
            #授权给用户的权限,需要在上面先开启对应权限功能
                 

401 Unauthorized

You are not authorized to view this page. If you have not changed any configuration files, please examine the file conf/tomcat-users.xml in your installation. That file must contain the credentials to let you use this webapp.

For example, to add the manager-gui role to a user named tomcat with a password of s3cret, add the following to the config file listed above.

<role rolename="manager-gui"/>
#此处用于定义开启manager-gui功能
<user username="tomcat" password="s3cret" roles="manager-gui"/>
$授权拥有manager-gui功能的账户

Note that for Tomcat 7 onwards, the roles required to use the manager application were changed from the single manager role to the following four roles. You will need to assign the role(s) required for the functionality you wish to access.

    #可开启的功能:

  • manager-gui – allows access to the HTML GUI and the status pages
  • manager-script – allows access to the text interface and the status pages
  • manager-jmx – allows access to the JMX proxy and the status pages
  • manager-status – allows access to the status pages only

The HTML interface is protected against CSRF but the text and JMX interfaces are not. To maintain the CSRF protection:

  • Users with the manager-gui role should not be granted either the manager-script or manager-jmx roles.
  • If the text or jmx interfaces are accessed through a browser (e.g. for testing since these interfaces are intended for tools not humans) then the browser must be closed afterwards to terminate the session.

For more information – please see the Manager App HOW-TO.

eg:
<role rolename=”manager-gui”/>  
#开启manager-gui功能
<user username=”tomcat” password=”tomcat” roles=”manager-gui“/>
#将开启的manager-gui功能授权给tomcat用户,密码为tomcat

                    

                    

 

                服务器状态信息server status-JVM

                             

                                          Eend Space : 新生带
                                          Survivor Space : 存活带
                                          Tenured Gen: 老年带

3.6 WEB-GUI 中的 部署功能

                         

 

                             

 

四.tomcat 配置详解

4.1 tomcat的常用组件配置

4.1.1 server 组件

                  Server:代表tomcat instance,即表现出的一个jvm进程;监听在8005端口,
                           只接收“SHUTDOWN”。各server监听的端口不能相同,
          因此,在同一物理主机启动多个实例时,需要修改其监听端口为不同的端口; 

4.1.2 service 组件

               Service:用于实现将一个或多个connector组件关联至一个engine组件;

4.1.3 connector 组件

Connector组件:#用于接受,响应http请求
进入tomcat的请求可分为两类:
(1) standalone : 请求来自于客户端浏览器;
(2) 由其它的web server反代:来自前端的反代服务器;
nginx –> http connector –> tomcat 
httpd –> http connector –> tomcat
httpd –> ajp connector –> tomcat 
             常用属性:
port=”8080″                       监听端口
protocol=”HTTP/1.1″         使用的协议
connectionTimeout=”20000″     连接超时
address:监听的IP地址;默认为本机所有可用地址;
maxThreads:最大并发连接数,默认为150;
enableLookups:是否启用DNS查询功能;
acceptCount:等待队列的最大长度;
secure:true|false        是否启用
sslProtocol: ssl通信协议指定
                                SSLEnabled=”true”  是否启用SSL
                                redirectPort=”8443″     重定向端口
            eg:
<Connector port=”8443″ protocol=”org.apache.coyote.http11.Http11Protocol”
               maxThreads=”150″ SSLEnabled=”true” scheme=”https” secure=”true”
               clientAuth=”false” sslProtocol=”TLS” />
                    #详细配置实例,见server.xml文件,里面有官方示例

4.1.4 Engine组件:

                        engine :  Servlet实例,即servlet引擎,其内部可以一个或多个host组件来定义站点; 通常需要通过
                                                       defaultHost来定义默认的虚拟主机;
                                注意: 一个service 中可以有多个connector,但是只能有一个engine
<Engine name=”Catalina” defaultHost=”localhost”>

属性:
name=
defaultHost=”localhost”
jvmRoute=

4.1.5 host组件

Host组件:位于engine内部用于接收请求并进行相应处理的主机或虚拟主机,示例:
<Host name=”localhost”  appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”>
</Host>
                         常用属性说明:
(1) appBase:此Host的webapps的默认存放目录,指存放非归档的web应用程序的目录
                                        或归档的WAR文件目录路径;
         可以使用基于$CATALINA_BASE变量所定义的路径的相对路径;
                                        (默认的变量定义文件:/etc/sysconfig/tomcat)
(2) autoDeploy=”true|false”:在Tomcat处于运行状态时,将某webapp放置于appBase
                                                                                所定义的目录中时, 是否自动将其部署至tomcat;
(3) unpackWARs=”true|false” : 是否自动展开WAR文件
示例:
     <Host name=”www.test123.com” appBase=”/tomcat/test” unpackWARs=”true”
                                            autoDeploy=”true”>
</Host>
 mkdir -pv /tomcat/test/
 mkdir -pv /tomcat/test/ROOT/{lib,classes,WEB-INF}
 vim /tomcat/test/ROOT/index.jsp:
                                              <html>

       <head>

       <title>Test Page</title>

        </head>

        <body>

                hello mygirl

</body>

       </html>

                                测试:
                                       [root@node74 test]# curl www.test123.com:8080
<html>
       <head>
       <title>Test Page</title>
        </head>
        <body>
                hello mygirl
</body>
       </html>
    
                                        

4.1.6 context 组件

Context组件:
                          #相当于在host定义的站点下的子站点且不希望使用应用程序文件目录名字
                          #作为访问时候的URL,可以使用context定义, 作用相当于alias
格式:
                                <Host ……………………>
<Context path=”/PATH” docBase=”/PATH/TO/SOMEDIR” reloadable=”true|false“/>
                                </Host>
常用属性:
                            path: 相对于当前host的URI的根路径的URI ;若为空,则用”/”表示 (即定义用于访问的url) 
                                docBase: 相应的应用程序的文件资源存放的位置(实际应用文件所在路径)
                                                若使用相对路径,则相对于host的appBase而言;
                                         eg :  appBase =/tomcat/test
                                                  绝对路径: /tomcat/test/alias
                                                  相对路径:  alias
                                        注意: docBase的路径中,不可以包含有appBase路径中的字符 
                                          eg:  appBase=/tomcat/test/www
                                                   此时docBase 中,不可以包含”www”字符,否则会出错   
                                reloadable: 定义是否支持重载此context相关的WEB应用程序的类;

                        示例:
                                #在/tomcat/test/下创建多一个/www,并在其中添加应用程序文件,要求使用/abc可以访问到/www
                                <Host name=”www.test123.com” appBase=”/tomcat/test” unpackWARs=”true” autoDeploy=”true”>
<Context path=”/abc” docBase=”www” reloadable=”false”/>
                                         #访问www.test123.com/abc 来实现访问/tomcat/test目录下的应用程序
                               </Host>
                                

4.1.7 valve 组件

Valve组件:
<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 
                            eg: 拒绝172.16.100.67访问
<Valve className=”org.apache.catalina.valves.RemoteAddrValve deny=”172\.16\.100\.67″/>
 

五. LNMT:Linux Nginx MySQL Tomcat 

5.1 client请求传送流程

       Client (http) –> nginx (reverse proxy)(http) –> tomcat  (http connector)
        注意: nginx 仅支持使用Http协议反代给后端的tomcat ,而httpd 支持ajp协议;

5.2 nginx配置:

         1.   与常规的反代配置一样,直接添加location即可:
location / {
proxy_pass http://10.1.249.69:8080/;
}
               若后端为tomcat 集群,则依然按照常规的集群定义upstream即可
          2.  若希望nginx自行处理静态内容时则:
location ~* \.(jsp|do)$ {
proxy_pass http://tc1.magedu.com:8080;
}

六. LAMT:Linux Apache(httpd) MySQL Tomcat 

6.1 httpd 反代模块:

# httpd支持使用http 协议以及ajp协议反代给后端的tomcat
   
1. httpd的代理模块:
proxy_module
proxy_http_module:适配http协议客户端;
proxy_ajp_module:适配ajp协议客户端;
         2. 客户端请求传送流程:
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)

6.2 proxy_http_module配置实例: 

proxy_http_module代理配置示例:
<VirtualHost *:80>
ServerName      tc1.magedu.com
ProxyRequests Off
ProxyVia        On
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://tc1.magedu.com:8080/ 
ProxyPassReverse / http://tc1.magedu.com:8080/ 
<Location />
Require all granted
</Location>
</VirtualHost>

6.3 proxy_ajp_module 配置实例

proxy_ajp_module代理配置示例:
<VirtualHost *:80>
ServerName      tc1.magedu.com
ProxyRequests Off
ProxyVia        On
ProxyPreserveHost On
<Proxy *>
Require all granted
</Proxy>
ProxyPass / ajp://10.1.249.69:8009/ 
ProxyPassReverse / ajp://10.1.249.69:8009/ 
<Location />
Require all granted
</Location>
</VirtualHost>

null

原创文章,作者:ldt195175108,如若转载,请注明出处:/62083

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1660809109@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达主管  万达娱乐开户  万达娱乐直属QQ  万达直属QQ  万达娱乐注册  万达娱乐  万达娱乐  万达主管  万达招商QQ