案例:配置HAProxy负载平衡集群
Posted 吴柯的运维笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了案例:配置HAProxy负载平衡集群相关的知识,希望对你有一定的参考价值。
“每个理性的IT人士都置顶了吴柯的运维笔记”
准备三台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
log 127.0.0.1 local2 ###[err warning info debug]
chroot /usr/local/haproxy
pidfile /var/run/haproxy.pid ###haproxy的pid存放路径
maxconn 4000 ###最大连接数,默认4000
user haproxy
group haproxy
daemon ###创建1个进程进入deamon模式运行
defaults
mode http ###默认的模式mode { tcp|http|health } log global ###采用全局定义的日志
option dontlognull ###不记录健康检查的日志信息
option httpclose ###每次请求完毕后主动关闭http通道
option httplog ###日志类别http日志格式
option forwardfor ###后端服务器可以从Http Header中获得客户端ip
option redispatch ###serverid服务器挂掉后强制定向到其他健康服务器
timeout connect 10000 #如果backend没有指定,默认为10s
timeout client 300000 ###客户端连接超时
timeout server 300000 ###服务器连接超时
maxconn 60000 ###最大连接数
retries 3 ###3次连接失败就认为服务不可用,也可以通过后面设置
listen stats
bind 0.0.0.0:1080 #监听端口
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm Haproxy Manager #统计页面密码框上提示文本
stats auth admin:admin #统计页面用户名和密码设置
#stats hide-version #隐藏统计页面上HAProxy的版本信息
listen websrv-rewrite 0.0.0.0:80
cookie SERVERID rewrite
balance roundrobin
server web1 192.168.20.101:80 cookie \
app1inst1 check inter 2000 rise 2 fall 5
server web2 192.168.20.102:80 cookie \
app1inst2 check inter 2000 rise 2 fall 5
3)启动服务器并设置开机启动
# systemctl start haproxy
# systemctl enable haproxy
三:客户端验证
推荐阅读:
吴柯的运维笔记
BY wukeyy18s
以上是关于案例:配置HAProxy负载平衡集群的主要内容,如果未能解决你的问题,请参考以下文章
Cluster基础:配置HAProxy负载平衡集群Keepalived高可用服务器Keepalived+LVS服务器
Haproxy通过acl';s实现不同后端的负载平衡web集群
我是不是需要在 DB 上进行会话集群以在 AWS/EC2 上使用 HAProxy 对 Jetty WebSockets 服务器进行负载平衡?