vivion34 发表于 2019-1-2 08:30:47

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

  Haproxy
  Client             eth0:192.168.122.1/24
  HAproxy          eth0:192.168.122.254/24
  HTML1      eth0 192.168.122.10/24
  HTML2      eth0192.168.122.20/24
  PHP   1         eth0 192.168.122.30/24
  PHP2          eth0 192.168.122.40/24
  

  

  HTML 1和2
  # yum install httpd
  分别创建测试页面index.html ,开启服务
  

  PHP1和2
  # 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 html url_reg-i \.html$                  #use_backend    if
  use_backend php-server ifphp
  use_backend html-server ifhtml
  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
  

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

  

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




页: [1]
查看完整版本: 负载均衡7层haproxy(提供软件包)