背景

前两天搭建了nacos集群环境,prometheus和grafana监控也安装完毕了,根据nacos官方建议,集群模式如下:

负载均衡器haproxy之初试牛刀_集群

 

上图负载均衡使用了阿里云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之初试牛刀_集群_02

说明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 中,两种配置方式任选其一即可。