在某些场景中,我们需要在前端放置一个Apache作为负载均衡器,后台有若干台Apusic或者其它的类似于Tomcat/WebLogic等应用服务器,客户端发送到Apache的请求,将被分配到后台的这些真正完成请求的服务器上。本文描述如何使用Apache作为负载均衡器的方法。

我们假设Apahce安装在 myserver 这台服务器上,并且希望用户访问 时,能够将这些请求被负载到后台的两台服务器上,分别是: 和

一、安装并重新编译Apache

1、linux下Apache的安装

下载最新的Apache安装包httpd-2.2.3.tar.gz文件

1) 解压

gzip –d httpd-2.2.3.tar.gz

tar xvf httpd-2.2.3.tar

2) 解压以后,cd httpd-2.2.3 进入解压后的目录,在终端执输入以下命令:

./configure --prefix=/usr/local/httpd --enable-so --enable-proxy --enable-proxy-ajp --enable-proxy-http --enable-proxy-ftp --enable-proxy-connect --enable-proxy-balancer

默认情况下,Apache安装是不会将这些文件编译进内核,因此,需要人工加载,而通过上述操作,在编译时会将这些DSO文件编译到内核中。

3) 在终端输入:make

4) 在终端输入:make install

5) 进入Apache的bin目录,在终端输入apachectl –k start

6) 在浏览器中输入,默认是80端口,如果出现It works!,说明Apache已经正常启动。

2、window下Apache的安装

1) 下载apache_2.2.2-win32-x86-no_ssl.msi版本或其他版本的apache

2) 点击该文件,就可以直接安装

3) 要配置负载均衡,进入apache的安装目录下的conf目录,打开httpd.conf文件,将文件中mod_proxy.so、 mod_proxy_ajp.so、mod_proxy_balancer.so、mod_proxy_connect.so、  mod_proxy_http.so 、mod_proxy_ftp.so所在行的注释去掉,就可以进行负载均衡的配置。

4) 在浏览器中输入,默认是80端口,如果出现It works!,说明Apache已经正常启动。

二、配置Apache作为LoadBalance将Apache作为LoadBalance前置机分别有三种不同的部署方式,分别是:

1 )轮询均衡策略的配置

进入Apache的conf目录,打开httpd.conf文件,在文件的末尾加入:

ProxyPass / balancer://proxy/         #注意这里以"/"结尾

BalancerMember

BalancerMember

我们来观察上述的参数“ProxyPass / balancer://proxy/”,其中,“ProxyPass”是配置虚拟服务器的命令,“/”代表发送Web请求的URL前缀,如:或者aaa,这些URL都将符合上述过滤条件;“balancer://proxy/”表示要配置负载均衡,proxy代表负载均衡名;BalancerMember 及其后面的URL表示要配置的后台服务器,其中URL为后台服务器请求时的URL。以上面的配置为例,实现负载均衡的原理如下:

假设Apache接收到请求,由于该请求满足ProxyPass条件(其URL前缀为“/”),该请求会被分发到后台某一个BalancerMember,譬如,该请求可能会转发到 aaa进行处理。当第二个满足条件的URL请求过来时,该请求可能会被分发到另外一台BalancerMember,譬如,可能会转发到。如此循环反复,便实现了负载均衡的机制。

2) 按权重分配均衡策略的配置

ProxyPass / balancer://proxy/         #注意这里以"/"结尾

BalancerMember   loadfactor=3

BalancerMember   loadfactor=1

参数”loadfactor”表示后台服务器负载到由Apache发送请求的权值,该值默认为1,可以将该值设置为1到100之间的任何值。以上面的配置为例,介绍如何实现按权重分配的负载均衡,现假设Apache收到aaa 4次这样的请求,该请求分别被负载到后台服务器,则有3次连续的这样请求被负载到BalancerMember为的服务器,有1次这样的请求被负载BalancerMember为后台服务器。实现了按照权重连续分配的均衡策略。

3) 权重请求响应负载均衡策略的配置

ProxyPass / balancer://proxy/ lbmethod=bytraffic  #注意这里以"/"结尾

BalancerMember   loadfactor=3

BalancerMember  loadfactor=1

参数“lbmethod=bytraffic”表示后台服务器负载请求和响应的字节数,处理字节数的多少是以权值的方式来表示的。“loadfactor”表示后台服务器处理负载请求和响应字节数的权值,该值默认为1,可以将该值设置在1到100的任何值。根据以上配置是这么进行均衡负载的,假设Apache接收到aaa请求,将请求转发给后台服务器,如果BalancerMember为后台服务器负载到这个请求,那么它处理请求和响应的字节数是BalancerMember为 服务器的3倍(回想(2)均衡配置,(2)是以请求数作为权重负载均衡的,(3)是以流量为权重负载均衡的,这是最大的区别)。

注:每次修改httpd.conf,用apachectl –k restart重新启动Apache。

linux apache 负载均衡,使用Apache作为前端负载均衡器相关推荐

  1. JBOSS通过Apache负载均衡方法一:使用mod_jk

    JBOSS通过Apache负载均衡方法一:使用mod_jk   本文第一.二节分别对Linux环境下前端使用Apache以及windows环境下前端使用IIS通过AJP协议和后端的JBOSS通信实现负 ...

  2. apache负载均衡 健康检查_Apache服务器配置负载均衡的方法 - Apache - 数安时代(GDCA)SSL证书官网...

    很多网友都在询问apache的负载均衡配置问题.那么我们在此,就再详细的说一说这个具体的过程.当然,说到apache负载均衡肯定离不开tomacat的使用,以及对mod_jk的了解.这些准备工作,还是 ...

  3. apache负载均衡的安装和实现方法

    在负载均衡技术中,硬件设备是比较昂贵的,对于负载均衡的学习者如果不是在企业中应用或者是学员中学习,很少有机会能碰到实际操作的训练.所以,很多朋友都会选择软件方面的设置进行研究.现在我们就来介绍一下再A ...

  4. 使用nginx+Apache负载均衡及动静分离

    使用nginx+Apache负载均衡及动静分离 介绍    LB负载均衡集群分两类: LVS (四层)和 nginx或haproxy (七层)    客户端都是通过访问分发器的VIP来访问网站 在七层 ...

  5. nginx学习文档之二 配置负载均衡-linux配置负载均衡

    #linux配置负载均衡 linux下配置tomcat负载均衡和windows下是一样的 安装完nginx后直接修改conf下的nginx.conf文件即可 配置文件如下: #user nobody; ...

  6. Linux LVS 负载均衡群集

    目录 Linux LVS 负载均衡群集 一.集群与分布式 集群的含义 LVS 模型 系统性能扩展方式 群集的三种类型 负载均衡群集 高可用群集 高性能运算群集 LVS 的负载调度算法 分布式系统 集群 ...

  7. Tomcat+Apache 负载均衡

    1.JDK1.8和Tomcat7.0不兼容,支持Tomcat8.0. 集群架构图: 2.负载均衡:负载的基础是集群,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同 ...

  8. Apache负载均衡+Tomcat集群

    http://weijie.blog.51cto.com/340746/68195 APACHE 2.2.8+TOMCAT6.0.14配置负载均衡 目标: 使用 apache 和 tomcat 配置一 ...

  9. windows apache 负载均衡配置 Tomcat集群配置

    2019独角兽企业重金招聘Python工程师标准>>> 1.安装 exe可执行文件的安装方式:http://jingyan.baidu.com/article/ed15cb1b73b ...

最新文章

  1. oracle 表分区[三]
  2. python 钉钉机器人自定义发送文件_Python自定义钉钉机器人发送自动化结果报告...
  3. java连服务器mysql报错_tomcat程序连接服务器mysql数据库报错
  4. 启动LINUX下的TFTP服务器
  5. Spark实战电影点评系统(一)
  6. python爬取数据生成词云_Python 爬取生成中文词云以爬取知乎用户属性为例
  7. Javascript实现的倒计时时钟
  8. Java基础学习总结(88)——线程创建与终止、互斥、通信、本地变量
  9. 设计模式12——中介者模式
  10. mysql 查询优化 ~ 善用profie利器
  11. FirstApp,iphone开发学习总结3,UIButton简单的操作
  12. Coin3D三维可视化教程8
  13. redis HSCAN命令及jedis的hscan方法
  14. 学Java编程可以做什么?发展方向有哪些?
  15. STM8S 红外解码+低功耗处理
  16. sheet(isPresented:onDismiss:content:) (SwiftUI 中文文档手册 教程含源码)
  17. 红石32位cpu通用计算机,【TRP|HappyWater】32位红石电脑RSC-3230(无命令方块)
  18. 7段并行数码管显示实验C语言,七段数码管显示十进制数字 (15)
  19. github of gist完全使用指南
  20. SpringBoot高级特性

热门文章

  1. Java - Poi 操作 Excel
  2. VS2010和opencv2.4.9的配置
  3. 【Linux】18.设置静态ip的方法(Ubuntu系统、nas、Red-Hat系统)
  4. git rebase教程
  5. Java Date 和 Calendar
  6. REdis AOF文件结构分析
  7. react native 网络请求 axios
  8. (转)Web Framework 的速度与激情 16 正式上映
  9. python ftp 上传
  10. 如何在 Ubuntu server 中设置 RainLoop Webmail