设为首页 收藏本站
查看: 1373|回复: 0

[经验分享] 软负载均衡之haproxy(二)

[复制链接]

尚未签到

发表于 2019-1-2 09:37:08 | 显示全部楼层 |阅读模式
  测试环境描述:
  网络拓扑结构如下图:
DSC0000.jpg

  共涉及四台服务器、一台客户端设备。
  分别为:
  主haproxy+主keepalived  192.168.71.128   虚拟IP:192.168.71.200
  辅haproxy+辅keepalived  192.168.71.138   虚拟IP:192.168.71.200
  

  www.bobo365.com   192.168.71.200(DNS服务器192.168.71.138兼)
  

  后端服务器:
  server01:192.168.71.135  (Windows下 apache+php+mysql)
  server02: 192.168.71.136 (centos 6.2下nginx+php+mysql)
  

  客户端:192.168.71.1
  

  所要达到的目的:
  

  1、主辅haproxy服务器为实际后端服务器提供负载均衡。
  2、server01或者server02任何一台宕机,不影响用户访问。
  3、主辅haproxy任何一台宕机,不影响用户访问。
  

  

  安装配置:
  1、实际服务器分别能单独访问:
  http://192.168.71.135
  http://192.168.71.136
  http://192.168.71.138:8080
  2、分别在主辅haproxy服务器上安装配置haproxy和keepalived。
  (1)192.168.71.128
  haproxy.cfg配置(/usr/local/haproxy):
  

  global
          log 127.0.0.1   local0
          maxconn 4096
          chroot /usr/local/haproxy
          uid 501
          gid 501
          daemon
          nbproc 1
          pidfile /usr/local/haproxy/haproxy.pid
  #       debug
  #      quiet
  

  

  defaults
          log     127.0.0.1       local3
          mode    http
          option httplog
          option httpclose
          option dontlognull
          option forwardfor
          option redispatch
          retries 2
          maxconn 2000
         # balance roundrobin
          balance leastconn
          stats   uri     /haproxy-stats
   stats realm Haproxy\ statistics
          stats auth admin:bobo365
          stats hide-version
          contimeout      5000
          clitimeout      50000
          srvtimeout      50000
  

  listen web_proxy www.bobo365.com:80
          option httpchk GET /index.php  HTTP/1.1\r\nHOST:www.bobo365.com
          #option httpchk HEAD /index.php  HTTP/1.1\r\nHOST:\www.bobo365.com
          #option httpchk HEAD /index.php  HTTP/1.0/r/nHOST:/www.bobo365.com
          server web1_192.168.71.138  192.168.71.138:8080 cookie app1inst1 check inter 2000 rise 2 fall 5
          server web2_192.168.71.136  192.168.71.136:80 cookie app1inst2 check inter 2000 rise 2 fall 5
          server web3_192.168.71.135  192.168.71.135:80 cookie app1inst3 check inter 2000 rise 2 fall 5
  

  

  

  keepalived.conf配置(/etc/keepalived):
  

  ! Configuration File for keepalived
  

  global_defs {
     notification_email {
       acassen@firewall.loc
       failover@firewall.loc
       sysadmin@firewall.loc
     }
     notification_email_from Alexandre.Cassen@firewall.loc
     smtp_server 192.168.200.1
     smtp_connect_timeout 30
     router_id LVS_DEVEL
  }
  

  vrrp_instance VI_1 {
      state MASTER
      interface eth0
      virtual_router_id 51
      priority 100
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 1111
      }
      virtual_ipaddress {
          192.168.71.200
      }
  }
  

  

  

  (2)192.168.71.138
  

  haproxy.cfg配置(/usr/local/haproxy):
  

  global
          log 127.0.0.1   local0
          maxconn 4096
          chroot /usr/local/haproxy
          uid 501
          gid 501
          daemon
          nbproc 1
          pidfile /usr/local/haproxy/haproxy.pid
  #       debug
  #      quiet
  

  

  defaults
          log     127.0.0.1       local3
          mode    http
          option httplog
          option httpclose
          option dontlognull
          option forwardfor
          option redispatch
          retries 2
          maxconn 2000
         # balance roundrobin
          balance leastconn
          stats   uri     /haproxy-stats
   stats realm Haproxy\ statistics
          stats auth admin:bobo365
          stats hide-version
          contimeout      5000
          clitimeout      50000
          srvtimeout      50000
  

  listen web_proxy www.bobo365.com:80
          option httpchk GET /index.php  HTTP/1.1\r\nHOST:www.bobo365.com
          #option httpchk HEAD /index.php  HTTP/1.1\r\nHOST:\www.bobo365.com
          #option httpchk HEAD /index.php  HTTP/1.0/r/nHOST:/www.bobo365.com
          server web1_192.168.71.138  192.168.71.138:8080 cookie app1inst1 check inter 2000 rise 2 fall 5
          server web2_192.168.71.136  192.168.71.136:80 cookie app1inst2 check inter 2000 rise 2 fall 5
          server web3_192.168.71.135  192.168.71.135:80 cookie app1inst3 check inter 2000 rise 2 fall 5
  

  

  

  keepalived.conf配置(/etc/keepalived):
  

  ! Configuration File for keepalived
  

  global_defs {
     notification_email {
       acassen@firewall.loc
       failover@firewall.loc
       sysadmin@firewall.loc
     }
     notification_email_from Alexandre.Cassen@firewall.loc
     smtp_server 192.168.200.1
     smtp_connect_timeout 30
     router_id LVS_DEVEL
  }
  

  vrrp_instance VI_1 {
      state BACKUP
      interface eth0
      virtual_router_id 51
      priority 80
      advert_int 1
      authentication {
          auth_type PASS
          auth_pass 1111
      }
      virtual_ipaddress {
          192.168.71.200
      }
  }
  

  

  

  其他:
  1、检测keepalvied安装是否成功:(ip a命令)
  192.168.71.128正常提供服务时:
  1: lo:  mtu 16436 qdisc noqueue
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
      inet6 ::1/128 scope host
         valid_lft forever preferred_lft forever
  2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000
      link/ether 00:0c:29:e1:9a:1e brd ff:ff:ff:ff:ff:ff
      inet 192.168.71.128/24 brd 192.168.71.255 scope global eth0
      inet 192.168.71.200/32 scope global eth0
      inet6 fe80::20c:29ff:fee1:9a1e/64 scope link
         valid_lft forever preferred_lft forever
  3: sit0:  mtu 1480 qdisc noop
      link/sit 0.0.0.0 brd 0.0.0.0
  

  192.168.71.128宕机时192.168.71.138状态:
  

  1: lo:  mtu 16436 qdisc noqueue
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
      inet6 ::1/128 scope host
         valid_lft forever preferred_lft forever
  2: eth0:  mtu 1500 qdisc pfifo_fast qlen 1000
      link/ether 00:0c:29:6d:6b:18 brd ff:ff:ff:ff:ff:ff
      inet 192.168.71.138/24 brd 192.168.71.255 scope global eth0
      inet 192.168.71.200/32 scope global eth0
      inet6 fe80::20c:29ff:fe6d:6b18/64 scope link
         valid_lft forever preferred_lft forever
  3: sit0:  mtu 1480 qdisc noop
      link/sit 0.0.0.0 brd 0.0.0.0
  

  2、启动关闭命令:
  关闭:killall -9 haproxy
  启动:/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
  

  /etc/init.d/keepalived stop|start|restart
  

  3、检测页面:http://www.bobo365.com/haproxy-stats
DSC0001.jpg


  


------------------------
新增配置(20120614补充)
haproxy.cfg:(www.bobo365.com/bobo365.com均可访问,主辅之间无缝切换)


  global
  log 127.0.0.1   local0
  maxconn 51200
  chroot /usr/local/haproxy
  uid 501
  gid 501
  daemon
  nbproc 1
  pidfile /usr/local/haproxy/haproxy.pid
  #       debug
  #       quiet
  defaults
  log     global
  log     127.0.0.1       local3  notice
  mode    http
  option httplog
  option httpclose
  option dontlognull
  option forwardfor
  option redispatch
  retries 3
  maxconn 51200
  # balance roundrobin
  balance leastconn
  stats   uri     /haproxy-stats
  stats realm Haproxy\ statistics
  stats auth admin:bobo365
  stats hide-version
  contimeout      5000
  clitimeout      50000
  srvtimeout      50000
  frontend        http-in
  bind    *:80
  acl host_www hdr_beg(host) -i www.
  use_backend www_bobo365 if host_www
  acl bobo365_com hdr_beg(host) -i bobo365.com
  use_backend bobo365_com if bobo365_com
  backend www_bobo365
  balance leastconn
  option forwardfor
  option httpchk HEAD /index.php HTTP/1.1\r\nHost:\ www.bobo365.com
  server web1_71.136_80 192.168.71.136:80 check inter 5s rise 2 fall 5
  #server web2_71.136_8000 192.168.71.136:8000 check inter 5s rise 2 fall 5
  backend bobo365_com
  balance leastconn
  option forwardfor
  option httpchk HEAD /index.php HTTP/1.1\r\nHost:\ bobo365.com
  server web1_71.136_80 192.168.71.136:80 check inter 5s rise 2 fall 5
  #server web2_71.136 192.168.71.136:8000 check inter 5s rise 2 fall 5
  

检测状态截图:
DSC0002.jpg

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658538-1-1.html 上篇帖子: Linux之使用haproxy搭建web群集(2) 下篇帖子: 负载均衡集群HAProxy日志篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表