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端口不能被占用否则报错



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