前两天搭建了nacos集群环境,prometheus和grafana监控也安装完毕了,根据nacos官方建议,集群模式如下:
上图负载均衡使用了阿里云SLB,但因目前的环境已有haproxy在使用,故准备利用原有的haproxy资源做负载均衡。
Haproxy安装使用按理说,Haproxy已经在使用了,我只要修改配置,重新reload即可,但为了熟悉haproxy,我在测试环境[centos 7]搭建一个haproxy,进行演练。
查看haproxy可以安装的版本
yum list | grep haproxy
显示:
haproxy.x86_64 1.5.18-9.el7 @base
haproxy18.x86_64 1.8.23-3.el7 epel
pcp-pmda-haproxy.x86_64 4.3.2-13.el7_9 updates
安装
安装基本版本即可
yum install haproxy -y
机器启动时自动开启haproxy
systemctl enable haproxy
此时haproxy并没有启动,可以通过
ps -ef | grep haproxy
修改配置文件
cd /etc/haproxy/
vim haproxy.cfg
设置server
listen callnacos
bind *:8888
mode http
option httplog
balance roundrobin
server nacos_1 xxx.xxx.xxx.xxx:8868 check
server nacos_2 xxx.xxx.xxx.xxx:8868 check
server nacos_3 xxx.xxx.xxx.xxx:8868 check
check:表示启用对此后端服务器执行健康状态检查。
检查配置文件是否有效的命令:
haproxy -c -f /etc/haproxy/haproxy.cfg
启动haproxy
查看启动状态命令
service haproxy status
启动命令:
service haproxy start
验证进程:
ps -ef | grep haproxy
验证haproxy是否起效
浏览器登录8888端口,访问nacos集群,登录成功
说明haproxy起作用了。
总结HAProxy 配置文件根据功能和用途,主要有 5 个部分组成,但有些部分并不是必须的, 可以根据需要选择相应的部分进行配置。
1、global 部分
用来设定全局配置参数,属于进程级的配置,通常和操作系统配置有关。
2、defaults 部分
默认参数的配置部分。在此部分设置的参数值,默认会自动被引用到下面的 frontend、
backend 和 listen 部分中,因此,如果某些参数属于公用的配置,只需在 defaults 部分添加一次即可。而如果在 frontend、backend 和 listen 部分中也配置了与 defaults 部分一样的参数,那么defaults 部分参数对应的值自动被覆盖。
3、frontend 部分
此部分用于设置接收用户请求的前端虚拟节点。frontend 是在 HAProxy1.3 版本之后才引入的一个组件,同时引入的还有 backend 组件。通过引入这些组件,在很大程度上简化了 HAProxy 配置文件的复杂性。frontend 可以根据 ACL 规则直接指定要使用的后端
4、backend 部分
此部分用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求。添加的真实服务器类似于 LVS 中的real server 节点。
5、listen 部分
此部分是 frontend 部分和 backend 部分的结合体。在 HAProxy1.3 版本之前,
HAProxy 的所有配置选项都在这个部分中设置。为了保持兼容性,HAProxy 新的版本仍然保留了 listen 组件的配置方式。目前在 HAProxy 中,两种配置方式任选其一即可。