前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >案例:配置HAProxy负载平衡集群

案例:配置HAProxy负载平衡集群

作者头像
吴柯
发布2018-04-16 14:49:19
9150
发布2018-04-16 14:49:19
举报

准备三台Linux服务器,两台做Web服务器,一台安装HAProxy,实现如下功能:

  • 客户端访问HAProxy,HAProxy分发请求到后端Real Server
  • 要求HAProxy可以根据Cookie为客户端分配固定后端服务器
  • 开启HAProxy监控页面,及时查看调度器状态
  • 设置HAProxy为开机启动

使用3台虚拟机,1台作为HAProxy调度器、2台作为Real Server、物理机作为客户端。

一:配置后端Web服务器

1)配置两台Web服务器网络参数

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.1 NETMASK=255.255.255.0 GATEWAY=192.168.0.254 DNS1=202.106.0.10

# service network restart

# iptables -F

# service iptables save

# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.2 NETMASK=255.255.255.0 GATEWAY=192.168.0.254 DNS1=202.106.0.10

# systemctl restart NetworkManager

2)设置后端Web服务

# yum -y install httpd

# systemctl start httpd

# echo “192.168.0.1” > /var/www/html/index.html

# yum -y install httpd

# systemctl start httpd

# echo “192.168.0.2” > /var/www/html/index.html

二:部署HAProxy服务器

1)配置网络,安装软件

# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=202.114.106.20

# vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.254 NETMASK=255.255.255.0

DNS1=202.106.0.20

# systemctl restart NetworkManager

# sed -i '/ip_forward/s/0/1/' sysctl.conf //开启路由转发

# sysctl -p

# yum -y install haproxy

2)修改配置文件

# vim /etc/haproxy/haproxy.cfgglobal

  1. log 127.0.0.1 local2 ###[err warning info debug]
  2. chroot /usr/local/haproxy
  3. pidfile /var/run/haproxy.pid ###haproxy的pid存放路径
  4. maxconn 4000 ###最大连接数,默认4000
  5. user haproxy
  6. group haproxy
  7. daemon ###创建1个进程进入deamon模式运行
  8. defaults
  9. mode http ###默认的模式mode { tcp|http|health } log global ###采用全局定义的日志
  10. option dontlognull ###不记录健康检查的日志信息
  11. option httpclose ###每次请求完毕后主动关闭http通道
  12. option httplog ###日志类别http日志格式
  13. option forwardfor ###后端服务器可以从Http Header中获得客户端ip
  14. option redispatch ###serverid服务器挂掉后强制定向到其他健康服务器
  15. timeout connect 10000 #如果backend没有指定,默认为10s
  16. timeout client 300000 ###客户端连接超时
  17. timeout server 300000 ###服务器连接超时
  18. maxconn 60000 ###最大连接数
  19. retries 3 ###3次连接失败就认为服务不可用,也可以通过后面设置
  20. listen stats
  21. bind 0.0.0.0:1080 #监听端口
  22. stats refresh 30s #统计页面自动刷新时间
  23. stats uri /stats #统计页面url
  24. stats realm Haproxy Manager #统计页面密码框上提示文本
  25. stats auth admin:admin #统计页面用户名和密码设置
  26. #stats hide-version #隐藏统计页面上HAProxy的版本信息
  27. listen websrv-rewrite 0.0.0.0:80
  28. cookie SERVERID rewrite
  29. balance roundrobin
  30. server web1 192.168.20.101:80 cookie \
  31. app1inst1 check inter 2000 rise 2 fall 5
  32. server web2 192.168.20.102:80 cookie \
  33. app1inst2 check inter 2000 rise 2 fall 5

3)启动服务器并设置开机启动

# systemctl start haproxy

# systemctl enable haproxy

三:客户端验证

客户端配置与HAProxy相同网络的IP地址,并使用火狐浏览器访问http://202.114.106.20,测试调度器是否正常工作,客户端访问http://202.114.106.20/haproxy-admin测试状态监控页面是否正常。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吴柯的运维笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档