本篇主要介绍apache配置反向代理,介绍了两种情况:第一种是,只使用apache配置反向代理;第二种是,apache与应用服务器(tomcat)结合,配置反向代理,同时了配置了负载均衡。

准备工作

1、  2 个tomcat实例

2、  安装Apache server2.2

基于apache server配置反向代理

在这个配置中,只在apache server中配置,不需要在tomcat中配置。

1)  ${apacheserver}/conf/extra/httpd-vhosts.conf在配置一个使用反向代理的虚拟主机

<VirtualHost *:80>
       ServerAdmin test@test.com
       ServerName www.test.com
       ProxyRequests Off
       <Proxy *>
           Order deny,allow
           Allow from all
       </Proxy>
       ProxyPass /examples http://192.168.1.250:8080/examples        ProxyPassReverse /examples http://192.168.1.250:8080/examples </VirtualHost>

这里是在apache中配置了一个虚拟主机:

  端口是80

  ServerAdmin:是邮箱地址

  ServerName:是hosts文件中配置的域名

  ProxyPass /examples http://192.168.1.250:8080/examples 是表示访问http://www.test.com/test 下的资源时,都使用配置的这个Prxoy。

http://192.168.1.250:8080/是你的一个tomcat 实例的访问地址。

2)在${apacheserver}/conf/httpd.conf 文件中做如下配置

   LoadModule proxy_module modules/mod_proxy.so和
   LoadModule proxy_http_module modules/mod_proxy_http.so前的注释去掉
这个配置的目的是让apache启动时加载proxy相关模块
把Include conf/extra/httpd-vhosts.conf前页的注释去掉
这个配置的目的是:让apache启动时加载虚拟主机配置

基于apache server + tomcat 配置反向代理和负载均衡

1、配置2个tomcat实例

1)调整它们的端口(shutdown,http或者ajp)

2)指定route

<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">

两个tomcat实例,一个是worker1,一个是worker2。后面配置apache时要用到。

2、Apache上配置Proxy

1) 加载相关代理模块

既然要使用代理方式访问,肯定要有代理模块才行的。在${apacheserver}/config/http.conf中做如下配置:

启用proxy的命令是:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

如果要配置AJP协议,要mod_proxy_ajp.so前面的#去掉。

2)定义反向代理和负载均衡

配置的源码是:

<IfModule proxy_balancer_module>
    # define a Load Balance Proxy based HTTP protocol
    <IfModule proxy_http_module>
        <Proxy balancer://myHttpLB>
            BalancerMember http://localhost:18080/examples loadfactor=80 route=worker1
            BalancerMember http://localhost:28080/examples loadfactor=20 route=worker2
        </Proxy>

        ProxyRequests off
        ProxyPass /examples balancer://myHttpLB/ stickySession=JSESSIONID nofailover=Off
        ProxyPassReverse /examples balancer://myHttpLB/
    </IfModule>

    # define a Load Balance Proxy based AJP protocol
    <IfModule proxy_ajp_module>
        <Proxy balancer://myAjpLB>
            BalancerMember ajp://localhost:18080/examples loadfactor=80 route=worker1
            BalancerMember ajp://localhost:28080/examples loadfactor=20 route=worker2
        </Proxy>

        ProxyRequests off
        ProxyPass /examples balancer://myAjpLB/ stickySession=JSESSIONID nofailover=Off
        ProxyPassReverse /examples balancer://myAjpLB/
    </IfModule>
</IfModule>

上面的配置中,根据加载的模块启动了两个具有负载均衡功能的反向Proxy,一个是基于HTTP协议的,一个 是基于AJP协议的。

下面对HTTP协议的做一个说明:

<Proxy balancer://myHttpLB>
    BalancerMember http://localhost:18080/examples loadfactor=80 route=worker1
    BalancerMember http://localhost:28080/examples loadfactor=20 route=worker2
</Proxy>

这是定义一个Proxy,这个Proxy启用了负载均衡,名称是balancer://myHttpLB

有两个成员:worker1和worker2。权重分别为80、20。

ProxyPass /examples balancer://myHttpLB/ stickySession=JSESSIONID nofailover=Off

在访问http://apacheServerIp:port/examples 下的资源时,由交给负载均衡balancer://myHttpLB/ 来处理。这个配置表示:

stickySession 表示启用粘性会话。

Nofailover用于配置故障转移的。

ProxyPassReverse /examples balancer://myAjpLB/

用于调整由反向代理服务器发送的HTTP回应头中的URL

如果对ProxyPass配置中还有不理解的地方,可以参考 http://blog.chinaunix.net/uid-13328647-id-2902236.html

3)测试

访问http://localhost/examples。

examples是tomcat/webapps下的应用,所以肯定是可以访问到的。

Tomcat:利用Apache配置反向代理、负载均衡的更多相关文章

  1. Linux系统中使用Nignx配置反向代理负载均衡

    目录 使用nginx实现动静分离的负载均衡集群 使用nginx实现负载均衡和动静分离 使用nginx实现动静分离的负载均衡集群 Nginx官网源码包下载链接:http://nginx.org/en/d ...

  2. (转)Apache实现反向代理负载均衡

    说到负载均衡LVS这套技术,有很多种实现方法. 本文所说,主要就是利用apache服务器实现反向代理,实现负载均衡. 首先,传统的正向代理如下图所示,正如我们用的游戏加速代理,大多的个人PC把请求发给 ...

  3. nginx ----> nginx配置/反向代理/负载均衡

    nginx [engine x]是一个HTTP和反向代理服务器,一个邮件代理服务器和一个通用的TCP/UDP代理服务器,最初由Igor Sysoev编写. 环境: Ubuntu16.04 安装ngin ...

  4. Apache配置反向代理、负载均衡和集群(mod_proxy方式)

    Apache配置负载均衡和集群使用mod_jk的方式比较多,但是mod_jk已经停止更新,并且配置相对复杂.Apache2.2以后,提供了一种原生的方式配置负载均衡和集群,比mod_jk简单很多. 1 ...

  5. Nginx 反向代理 负载均衡 虚拟主机配置

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  6. 【转】Nginx 反向代理 负载均衡 虚拟主机配置

    原文:http://www.cnblogs.com/itdragon/p/8059000.html Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代 ...

  7. 反向代理负载均衡之APACHE

    反向代理负载均衡之APACHE 一.反向代理1.1 介绍反响代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将 ...

  8. Centos7.4 Nginx反向代理+负载均衡配置

    Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65 ...

  9. 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器

    Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...

随机推荐

  1. MongoDB的CRUD操作

    1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的 ...

  2. 原创:微信小程序源码解说:石头剪刀布(附源码下载)

    我的博客:来源链接 昨天看有个石头剪刀布的练习,就拿出来做了一下,布局的代码浪费了很多时间,果然CSS这块的还不是很熟练,下面直接上图上代码了. JS: var numAi = 0 var timer ...

  3. JavaScript 中的相等检测

    一.有时JavaScript的等价比较是一件抓狂的事情,看看这个表格就一目了然了.

  4. 你不知道的HttpHandler相关知识

    一.关于IHttpHandler.IsReusable 很多人不明白,这哥们到底干嘛的,估计是微软最初的一个想法--让一个对象可以一直不断地被重复使用 ,但这个想法不成熟,会带来很多隐藏问题,一个对象 ...

  5. 在Mac上开发使用yeoman构建Asp.net core项目并且实现分层引用

    1.Yeoman? yeoman是一个自动化脚手架工具.它提供很多generator,generator相当于VisualStudio的模板,用来初始化项目.更多的就不多说了,写一遍都写不完,自己看吧 ...

  6. jquery如何判断checkbox(复选框)是否被选中 ...

    <script type="text/javascript" src="../lib/jQuery1.11.1.js"></script> ...

  7. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  8. [Access] C# 通过 COM 组件访问 Access 文件

    说明: 1,采用 dynamic 调用 COM 组件,适用于 .NET 4.0 以上支持 dynamic 版本的才可以: 2,执行速度不敢恭维,只是因为要用于 Silverlight OOB 模式中才 ...

  9. CodeFirst时使用T4模板(你肯定没用过的笨方法,还望园友指教)

    我们都知道T4模板用于生成相似代码. 在DBFirst和ModelFirst条件下我们很容易从.edmx下获取所有实体类和其名称,并且通过我们定义的模板和某些遍历工作为我们生成所需要的相似代码. 但是 ...

  10. jQuery实现AJAX定时刷新局部页面实例

    本篇文章通过两种方法实例讲解ajax定时刷新局部页面,当然方法有很多种,也可以不使用ajax来刷新页面,可以使用jquery中的append来给指定内容加东西,但是都不太实用,最实用的方法还是ajax ...