集群负载均衡
集群负载均衡
安装haproxy
准备haproxy配置文件
先准备haproxy.cfg
现成文件路径在 a-部署/负载均衡/haproxy/haproxy.cfg
global
# 定义日志记录到本地 3 级别,信息级别,地址为 127.0.0.1
log 127.0.0.1 local3 info
# 以守护进程方式运行
daemon
# 最大连接数设置为 100000
maxconn 100000
defaults
# 应用全局的日志设置
log global
# 模式为 TCP
mode tcp
# 启用 TCP 日志记录
option tcplog
# 不启用 dontlognull 选项
#option dontlognull
# 连接超时时间设置为 10000 毫秒
timeout connect 10000
# 注释:timeout > mqtt 的 keepalive * 1.2
# timeout > mqtt's keepalive * 1.2
# 客户端超时时间设置为 240 秒
timeout client 240s
# 服务器超时时间设置为 240 秒
timeout server 240s
# 最大连接数设置为 50000
maxconn 50000
backend mqtt_backend
# 模式为 TCP
mode tcp
# 粘性会话负载均衡设置
stick-table type string len 32 size 1000k expire 30m
# 根据请求负载和 mqtt 字段值进行粘性会话
stick on req.payload(0,0),mqtt_field_value(connect,client_identifier)
# 节点A 内网IP
server fastbeeA 10.x.x.x:1884 check
# 节点B 内网IP
server fastbeeB 10.x.x.x:1884 check
frontend mqtt_servers
# 绑定到所有地址的 1884 端口
bind *:1883
# 模式为 TCP
mode tcp
# 等待缓冲区填满以便解析 MQTT 报文,延迟 10 秒
tcp-request inspect-delay 10s
# 拒绝非 MQTT 连接
tcp-request content reject unless { req.payload(0,0),mqtt_is_valid }
# 设置默认后端为 mqtt_backend
default_backend mqtt_backend
backend mqtt_ws_backend
mode tcp
balance roundrobin
# 节点A内网IP
server fastbeeA 10.x.x.x:8084 check
# 节点B内网IP
server fastbeeB 10.x.x.x:8084 check
frontend mqtt_ws_frontend
bind *:8083
mode tcp
default_backend mqtt_ws_backend定位 server fastbeeA server fastbeeB 修改内网IP地址
docker-compose方式安装
将haproxy.cfg 复制到 /opt/haproxy
现成文件在项目 a-部署/负载均衡/haproxy/docker-compose安装/docker-compose.yml
version: '3'
services:
haproxy:
image: haproxy:latest
ports:
- "8083:8083"
- "1883:1883"
volumes:
- /opt/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
restart: always执行docker-compose命令
CentOS系统
A.使用包管理器安装(yum)
1.更新系统软件包列表
打开终端,执行以下命令更新系统软件包列表,确保可以获取到最新的软件包信息。
sudo yum update -y2.安装 HAProxy
使用 yum 命令安装 HAProxy。
sudo yum install haproxy -y3.启动 HAProxy 服务
安装完成后,使用以下命令启动 HAProxy 服务。
sudo systemctl start haproxy4.设置开机自启
为了让 HAProxy 在系统启动时自动启动,执行以下命令。
sudo systemctl enable haproxy5.检查服务状态
可以使用以下命令检查 HAProxy 服务是否正常运行。
sudo systemctl status haproxyB.源码编译安装
1.安装编译依赖*
首先需要安装编译所需的工具和依赖库。
sudo yum install -y gcc make pcre-devel zlib-devel systemd-devel2.下载 HAProxy 源码
从 HAProxy 官方网站下载最新版本的源码包,这里以 HAProxy 2.6.14 为例。
wget https://www.haproxy.org/download/2.6/src/haproxy-2.6.14.tar.gz3.解压源码包
使用以下命令解压下载的源码包。
tar -zxvf haproxy-2.6.14.tar.gz
cd haproxy-2.6.144.编译和安装
依次执行以下命令进行编译和安装。
make TARGET=linux-glibc USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1 USE_SYSTEMD=1
sudo make install5.创建配置文件和服务文件
创建 HAProxy 的配置文件目录和配置文件,并创建 Systemd 服务文件。
sudo mkdir -p /etc/haproxy
sudo cp examples/haproxy.cfg /etc/haproxy/
sudo tee /etc/systemd/system/haproxy.service <<EOF
[Unit]
Description=HAProxy Load Balancer
After=network.target
[Service]
ExecStart=/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg
ExecReload=/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg -st \$MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
EOF6.启动服务并设置开机自启
重新加载 Systemd 配置,启动 HAProxy 服务并设置开机自启。
sudo systemctl daemon-reload
sudo systemctl start haproxy
sudo systemctl enable haproxyUbuntu系统
A.使用包管理器安装(apt)
1.更新系统软件包列表
打开终端,执行以下命令更新系统软件包列表。
sudo apt update2.安装 HAProxy
使用 apt 命令安装 HAProxy。
sudo apt install haproxy -y3.启动 HAProxy 服务
安装完成后,使用以下命令启动 HAProxy 服务。
sudo systemctl start haproxy4.设置开机自启
为了让 HAProxy 在系统启动时自动启动,执行以下命令。
sudo systemctl enable haproxy5.检查服务状态
可以使用以下命令检查 HAProxy 服务是否正常运行。
sudo systemctl status haproxyB.源码编译安装
1.安装编译依赖
首先需要安装编译所需的工具和依赖库。
sudo apt install -y build-essential libpcre3-dev zlib1g-dev libssl-dev systemd-dev2.下载 HAProxy 源码
从 HAProxy 官方网站下载最新版本的源码包,以 HAProxy 2.6.14 为例。
wget https://www.haproxy.org/download/2.6/src/haproxy-2.6.14.tar.gz3.解压源码包
使用以下命令解压下载的源码包。
tar -zxvf haproxy-2.6.14.tar.gz
cd haproxy-2.6.144.编译和安装
依次执行以下命令进行编译和安装。
make TARGET=linux-glibc USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1 USE_SYSTEMD=1
sudo make install5.创建配置文件和服务文件
创建 HAProxy 的配置文件目录和配置文件,并创建 Systemd 服务文件。
sudo mkdir -p /etc/haproxy
sudo cp examples/haproxy.cfg /etc/haproxy/
sudo tee /etc/systemd/system/haproxy.service <<EOF
[Unit]
Description=HAProxy Load Balancer
After=network.target
[Service]
ExecStart=/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg
ExecReload=/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg -st \$MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
EOF6.启动服务并设置开机自启
重新加载 Systemd 配置,启动 HAProxy 服务并设置开机自启。
sudo systemctl daemon-reload
sudo systemctl start haproxy
sudo systemctl enable haproxy安装完成后,根据实际需求修改 /etc/haproxy/haproxy.cfg 配置文件,以实现不同的负载均衡策略。
