文章目录
1. HAProxy简介
HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy 特别适用于那些负载特大的 web 站点, 这些站点通常又需要会话保持或七层处理。HAProxy 运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的 web 服务器不被暴露到网络上
2. 安装配置HAProxy
-
安装:
yum install haproxy -y
-
配置:
vim /etc/haproxy/haproxy.cfg
64 stats uri /status #设置统计页面的uri为/status
65 stats auth admin:westos #设置统计页面认证的用户和密码
68 #---------------------------------------------------------------------
69 frontend main #前端
70 bind *:80 #端口号
71 # acl url_static path_beg -i /static /images /javascript /stylesheets
72 # acl url_static path_end -i .jpg .gif .png .css .js
73 #
74 # use_backend static if url_static
75 default_backend app #默认后端为app
86 #---------------------------------------------------------------------
87 backend app #后端
88 balance roundrobin #调度算法
89 server app1 192.168.43.27:80 check
90 server app2 192.168.43.37:80 check
- 开启服务:
systemctl start haproxy.service
netstat -antlupe
:可以查看到haproxy端口号为80
- 可以访问http://192.168.43.17/status
3. haproxy与ansible魔术变量
visudo
:添加权限
devops ALL=(ALL) NOPASSWD: ALL
-
cp /etc/haproxy/haproxy.cfg /mnt/ansible/
-
cp /mnt/ansible/haproxy.cfg /mnt/ansible/haproxy.cfg.j2
:复制jinja2模板 -
vim /mnt/ansible/hosts
:将本机IP(有haproxy服务)加入到主机清单中
[lb]
192.168.43.17
vim haproxy.cfg.j2
:将魔术变量添加到jinja2模板中
87 backend app
88 balance roundrobin
89 {
% for host in g