负载均衡7层haproxy(提供软件包)

本文详细介绍如何在服务器上配置HAproxy实现负载均衡,并通过实际案例演示如何区分处理HTTP和PHP请求,确保服务高可用性。

                           Haproxy

Client             eth0192.168.122.1/24

HAproxy          eth0192.168.122.254/24

HTML  1        eth0 192.168.122.10/24

HTML  2        eth0192.168.122.20/24

PHP   1         eth0 192.168.122.30/24

PHP  2          eth0 192.168.122.40/24



HTML 12

# yum install httpd

分别创建测试页面index.html ,开启服务


PHP  12

# yum install httpd php

分别创建测试页面index.php ,开启服务




安装HAproxy

# tar xf haproxy-1.4.20.tar.gz

# cd haproxy-1.4.20

# make TARGET=linux26PREFIX=/usr/local/haproxy install



生成HAproxy配置文件

# cd /usr/local/haproxy/

# mkdir conf logs

# cd conf/

# vim haproxy.cfg

      global

             log127.0.0.1 local3 info              #日志服务器

             maxconn4096                            #单个进程的最大并发连接数

             uidnobody                                 #用户身份

             gidnobody                                 #组身份

             daemon                                      #守护进程方式后台运行

             nbproc1                                     #工作进程数量



      defaults

             log          global

             mode      http                #工作模式 http ,tcp  4 ,http 7 

             maxconn2048                  #最大连接数

             retries    3                   #3次连接失败就认为服务器不可用

             option     redispatch       #如果 cookie 写入了 serverId 而客户端不会刷新 cookie,serverId 对应的服务器挂掉后,强制定向到其他健康的服务器

             stats uri /haproxy #使用浏览器访问 http://192.168.122.254/haproxy,可以看到服务器状态

             contimeout     5000

             clitimeout       50000

             srvtimeout      50000



      frontendhttp-in

             bind0.0.0.0:80

             modehttp

             logglobal

             optionhttplog

             optionhttpclose             #打开支持主动关闭功能

           acl php url_reg  -i \.php$               #acl <ACL名字>  <类型>  <大小写>  <规则>

           acl html url_reg  -i \.html$                  #use_backend  <服务器组>  if  <ACL名字>

           use_backend php-server if  php

           use_backend html-server if  html

           default_backend html-server              #默认使用的服务器组



      backendphp-server

             modehttp

             balanceroundrobin               #负载均衡的方式

             optionhttpchk GET /index.php            #健康检查

             cookieSERVERID insert indirect nocache   #客户端的 cookie 信息

             serverphp-A 192.168.122.30:80 weight 1 cookie 1 check inter 2000 rise 2 fall 5

             serverphp-B 192.168.122.40:80 weight 1 cookie 2 check inter 2000 rise 2 fall 5

             #cookie1 标识 serverid  1

             #checkinter 2000 检测心跳频率

             #rise2 2 次正确认为服务器可用

             #fall5 5 次失败认为服务器不可用


      backendhtml-server

             modehttp

             balanceroundrobin

             optionhttpchk GET /index.html

             cookieSERVERID insert indirect nocache

             serverhtml-A 192.168.122.10:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5

             serverhtml-B 192.168.122.20:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5          



启动HAproxy

# /usr/local/haproxy/sbin/haproxy -f/usr/local/haproxy/conf/haproxy.cfg


查看HAproxy状态

# firefox http://localhost/haproxy


在客户端访问 HAproxy测试

# elinks –dump http:// 192.168.122.254

# elinks –dump http://192.168.122.254/index.html

# elinks –dump http://192.168.122.254/index.php


你可以只做2html的服务然后在client段访问192.168.122.254  可以看到html  1里的index.html 内容清楚历史访问记录然后在浏览192.168.122.254   可以看到html  2里的index.html 内容如果没看到那就多做几次刷新下搭建haproxy的服务器80端口不能被占用否则报错



软件包  看其他博文的最下面 给的百度云盘地址





      本文转自潘阔 51CTO博客,原文链接:http://blog.51cto.com/pankuo/1389314,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值