当前位置:首页 > 科技  > 软件

微服务部署—HAProxy+Keepalived高可用负载均衡集群配置

来源: 责编: 时间:2023-10-16 17:10:22 181观看
导读HAProxy是一种免费、快速、可靠的反向代理,为基于TCP和HTTP的应用程序提供高可用性、负载平衡和代理,它非常适合应用在高并发大流量的网站上。这些年来,HAProxy已成为事实上的标准开源负载均衡,目前HAProxy已与大多数主流

8j428资讯网——每日最新资讯28at.com

HAProxy是一种免费、快速、可靠的反向代理,为基于TCP和HTTP的应用程序提供高可用性、负载平衡和代理,它非常适合应用在高并发大流量的网站上。这些年来,HAProxy已成为事实上的标准开源负载均衡,目前HAProxy已与大多数主流Linux发行版一起提供,很多云平台也默认集成了HAProxy。
  LVS、Nginx、HAProxy是常用的三款负载均衡,网上有很多三种负载均衡详细的对比文章,下面一句话总结LVS、Nginx、HAProxy的优缺点:
8j428资讯网——每日最新资讯28at.com

  • LVS:工作在OSI七层协议模型的第四层传输层上,简单、稳定、性能最强,但可配置性逊于其他两种,不支持正则处理,不能做动静分离,不支持URL和目录转发。
  • HAProxy:工作在OSI七层协议模型的第四层传输层和第七层应用层上,性能强但不如Lvs,但是配置比Lvs灵活,支持URL和目录转发,但不能作为web服务器。
  • Nginx:工作在OSI七层协议模型的第七层应用层上,三种负载均衡软件Nginx配置最为简单灵活,但性能最差,可作为web服务器使用。
      综合各方面的优缺点考虑,我们选择使用HAproxy+Keepalived作为负载均衡配置,Nginx作为前端静态页面Web服务器的架构使用。HAP
    roxy的偶数发行版本为稳定且长期支持版本,追求系统极端稳定性的用户可以选择这个版本,目前(2023年08月09日)最新发布版本为 HAProxy 2.8.2 release,我们将在环境上部署并配置这个版本。

一、 HAProxy+Keepalived高可用负载均衡集群安装配置

通常我们把Keepalived和HAProxy一起使用,来实现Web服务器的高可用性和负载平衡。Keepalived是一个用C编写的路由软件,它使用虚拟路由冗余协议(VRRP)和健康检查机制的组合来确定服务器的状态,并在需要时触发故障转移。VRRP确保只有一个服务器在任何给定时间内 actively 响应请求,而健康检查则监视服务器的健康状态,并在主服务器失败时触发选举过程。8j428资讯网——每日最新资讯28at.com

  • Keepalived的作用:Keepalived负责管理虚拟IP(VIP)并确保高可用性。它监控服务器的健康状况,如果主服务器(主服务器)出现故障或无响应,Keepalive会触发到备份服务器(从服务器)的故障转移。在故障转移过程中,Keepalived会更新VIP以指向备份服务器,从而无缝地将流量重定向到备份服务器。
  • HAProxy的作用:HAProxy是一款功能强大且可靠的负载均衡器,可跨多个服务器分配传入流量。它充当反向代理,接收来自客户端的请求并将其转发到适当的后端服务器。HAProxy的主要功能是平衡服务器之间的负载,确保最佳性能和可用性。

1、集群服务器规划配置

  • VIP(虚拟IP):192.168.1.200
  • 主节点服务器:HAProxy-01,192.168.1.210
  • 备节点服务器:HAProxy-02,192.168.1.195

关闭SELinux,尽管SELinux可以增强生产服务器的安全性,它是为每个软件配置控制权限,使用它的前提是必须详细了解每个需要部署的软件并为它配置。很多国内云服务器默认安装的Linux环境也是禁用SELinux,否则在安装部署时会有很多问题。8j428资讯网——每日最新资讯28at.com

# 首先临时关闭SELinuxsetenforce 0# 修改配置文件,永久关闭SELinuxvi /etc/sysconfig/selinux# 设置SELINUX=disabled

2、Keepalived安装配置

VIP(虚拟IP)有两种实现方式:一种是直接配置Linux服务器网络,还有一种是使用Keepalived,我们这里直接使用Keepalived的方式来实现。在实际部署中发现,如果多网卡时,不同的虚拟IP绑定在同一网卡,在虚拟IP切换时会发生无法访问的情况,所以尽量将虚拟IP设置为统一网段绑定在同一网卡。8j428资讯网——每日最新资讯28at.com

(1)Keepalived软件安装步骤

  • 查看 keepalived 软件包
yum list keepalived
  • (二选一)使用 yum 方式安装软件包,因为yum 源的原因,无法安装最新稳定版本,根据自己需要进行选择。
yum install -y keepalived
  • (二选一)使用源码包安装,因为yum源的原因,默认安装的版本是1.3.5,而最新版是2.2.8,我们为了使用最新版,所以这里使用编译源码的方式安装。
# 安装编译源码所需依赖yum -y install gcc openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel net-snmp-devel glib2-devel# 下载源码包wget https://www.keepalived.org/software/keepalived-2.2.8.tar.gz# 解压源码包tar zxvf keepalived-2.2.8.tar.gz# 编译源码包cd keepalived-2.2.8./configure --prefix=/make && make install# 从解压的源码包中将开机启动文件复制到/etc/rc.d/init.d/cp /opt/software/keepalived-2.2.8/keepalived/etc/init.d/keepalived /etc/rc.d/init.d/# 给keepalived赋权限/etc/init.d/是/etc/rc.d/init.d/的软链接chmod +x /etc/init.d/keepalived# 设置开机启动echo "/etc/init.d/keepalived start" >> /etc/rc.local

(2)安装邮件通知服务

在生产环境中,高可用服务的状态变化需要及时通知系统管理员,以保障管理员及时处理服务故障,使服务正常运行。Keepalived提供notification_email、smtp_server等邮件发送配置,但是它不支持SMTP身份验证,也不支持SMTP的TLS,它是使用HELO且不使用身份验证的RFC821实现,所以Keepalived没有配置邮件服务器用户名、密码的方法,导致无法使用外部邮箱服务器,所以,这里选择网上大多数方法,编写脚本,当Keepalived状态切换时,调用Linux系统的mailx(mailx是一个命令行邮件客户端)进行邮件发送。8j428资讯网——每日最新资讯28at.com

  • 查看Linux是否已经安装mailx,如果显示no mailx in…,则表示没有安装,可以通过yum命令安装
[root@localhost /]# which mailx/usr/bin/which: no mailx in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/java/bin:/root/bin)
  • 安装邮件服务的yum命令
yum install mailx -y
  • 在mail.rc文件中配置邮箱发送账号和密码,有些邮箱的密码是单独的授权码,这个根据自己的邮箱来获取。
vi /etc/mail.rc# 一下内容加在mail.rc文件底部set from=xxxxxxxxxxx@163.comset smtp=smtp.163.comset smtp-auth-user=xxxxxxxx@163.comset smtp-auth-password=密码set smtp-auth=loginset ssl-verify=ignore
  • 通过命令行测试是否能够发送邮件
echo "虚拟IP发生浮动,请及时处理。" | mail -s "Keepalived告警邮件" gitegg@gitegg.com
  • 编写邮件发送脚本keepalived_notify.sh。
vi /etc/keepalived/keepalived_notify.sh

keepalived_notify.sh内容如下:8j428资讯网——每日最新资讯28at.com

# 填写一下内容#!/bin/bashmailto=收件人邮箱1,收件人邮箱2notify() {   mailsubject="【Keepalived状态切换告警邮件】$(hostname) 状态切换为 $1"   mailbody="$(date +'%F %T'): Keepalived状态发生切换, $(hostname) 状态切换为 $1,请检查服务器运行状态。"   echo "$mailbody" | mail -s "$mailsubject" $mailto}case $1 inmaster)   notify master   ;;backup)   notify backup   ;;fault)   notify fault   ;;*)   echo "Usage: $(basename $0) {master|backup|fault}"   exit 1   ;;esac

keepalived_notify.sh赋可执行权限。8j428资讯网——每日最新资讯28at.com

chmod +x /etc/keepalived/keepalived_notify.sh# 测试脚本是否可以发送bash /etc/keepalived/keepalived_notify.sh master
  • 修改系统hostname,否则使用hostname,无法区分是哪台服务器出了问题,修改/etc/hostname文件即可。
vi /etc/hostname#修改hostname,注意格式localhost.ServerA#立即生效hostname $(cat /etc/hostname)

(3)Keepalived软件配置

  • 配置防火墙firewalld,使VRRP组播通过防火墙:

net.ipv4.ip_forward = 1 开启允许数据包转发   2. net.ipv4.ip_nonlocal_bind = 1 开启允许绑定非本机的IP   3. --in-interface后面一定要修改为你自己的网卡。8j428资讯网——每日最新资讯28at.com

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confecho "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf sysctl -p# 双网卡,网卡enp6s0f1 firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp6s0f1 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface enp6s0f1 --destination 224.0.0.18 --protocol vrrp -j ACCEPT# 双网卡,网卡enp6s0f0firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp6s0f0 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface enp6s0f0 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --reload

配置Keepalived的虚拟IP(VIP),多网卡配置,虚拟一个内网VIP,一个外网VIP主节点服务器192.168.1.210的keepalived.conf配置。8j428资讯网——每日最新资讯28at.com

! Configuration File for keepalivedglobal_defs {   router_id NODE_MASTER #名称唯一   vrrp_skip_check_adv_addr # 默认是不跳过检查。检查收到的VRRP通告中的所有地址可能会比较耗时,设置此命令的意思是,如果通告与接收的上一个通告来自相同的master路由器,则不执行检查(跳过检查)。    #vrrp_strict # 严格遵守VRRP协议   #vrrp_garp_interval 0 #在一个接口发送的两个免费ARP之间的延迟。可以精确到毫秒级。默认是0.   #vrrp_gna_interval 0 #在一个网卡上每组na消息之间的延迟时间,默认为0   script_user root   enable_script_security   max_auto_priority 1}vrrp_instance VI_1 {    state MASTER # 设置初始状态均主    interface enp6s0f1 enp6s0f0 # 设置绑定虚拟IP的网卡,多个网卡可以在后面添加    virtual_router_id 51 # 集群的virtual_router_id值,主备一致    priority 100 # 路由权重    advert_int 1 #检查间隔,默认1秒    notify_master "/etc/keepalived/keepalived_notify.sh master"    notify_backup "/etc/keepalived/keepalived_notify.sh backup"    notify_fault "/etc/keepalived/keepalived_notify.sh fault"    authentication {        auth_type PASS #认证方式        auth_pass 11111111 #认证密码(密码只识别前8位)    }    virtual_ipaddress {        内网虚拟ip dev enp6s0f1  # 内网虚拟ip,后面可以加网卡名称绑定不同网卡        公网虚拟ip dev enp6s0f0  # 公网虚拟ip,后面可以加网卡名称绑定不同网卡    }}

备节点服务器192.168.1.195的keepalived.conf配置。8j428资讯网——每日最新资讯28at.com

! Configuration File for keepalivedglobal_defs {   router_id NODE_SLAVE #名称唯一   vrrp_skip_check_adv_addr # 默认是不跳过检查。检查收到的VRRP通告中的所有地址可能会比较耗时,设置此命令的意思是,如果通告与接收的上一个通告来自相同的master路由器,则不执行检查(跳过检查)。   vrrp_strict # 严格遵守VRRP协议   #vrrp_garp_interval 0 #在一个接口发送的两个免费ARP之间的延迟。可以精确到毫秒级。默认是0.   #vrrp_gna_interval 0 #在一个网卡上每组na消息之间的延迟时间,默认为0   script_user root   enable_script_security   max_auto_priority 1}vrrp_instance VI_1 {    state BACKUP # 设置初始状态均备    interface enp6s0f1 # 设置绑定虚拟IP的网卡    virtual_router_id 51 # 集群的virtual_router_id值,主备一致    priority 100 # 路由权重    advert_int 1 #检查间隔,默认1秒    notify_master "/etc/keepalived/keepalived_notify.sh master"    notify_backup "/etc/keepalived/keepalived_notify.sh backup"    notify_fault "/etc/keepalived/keepalived_notify.sh fault"    authentication {        auth_type PASS #认证方式        auth_pass 11111111 #认证密码(密码只识别前8位)    }    virtual_ipaddress {        内网虚拟ip/24 # 内网虚拟ip        公网虚拟ip/24 # 公网虚拟ip    }}

分别在主备节点启动keepalived。8j428资讯网——每日最新资讯28at.com

systemctl start keepalived# 查看启动状态/etc/init.d/keepalived status

设置keepalived开机启动。8j428资讯网——每日最新资讯28at.com

systemctl enable keepalived.service

在主节点通过ip addr命令验证,查看虚拟IP192.168.1.200在主节点。8j428资讯网——每日最新资讯28at.com

[root@localhost ~]# ip addr | grep 192.168.1.200    inet 192.168.1.200/24 scope global secondary enp6s0f1

在备节点通过ip addr命令验证,查看虚拟IP192.168.1.200不在备节点。8j428资讯网——每日最新资讯28at.com

[root@localhost ~]# ip addr | grep 192.168.1.200[root@localhost ~]#

通过以上验证,说明Keepalived虚拟IP配置成功,如果主备同时存在虚拟IP,那么说明没有配置成功,请检查防火墙firewall是否配置正确。同时,为了验证虚拟IP是否会自动漂移,可以使用systemctl stop keepalived 停止主节点的Keepalived,此时虚拟IP漂移到备节点。8j428资讯网——每日最新资讯28at.com

3、HAProxy安装配置

HAProxy也有两种安装方式,yum和源码包。同样,因为yum源的原因,yum方式安装的不是最新稳定版本,所以我们这里选择采用编译源码包的方式安装。8j428资讯网——每日最新资讯28at.com

(1)HAProxy软件安装步骤

HAProxy编译安装需要用到Lua,所以首先安装Lua。记住Lua的src路径/opt/software/lua-5.4.6/src,后续HAProxy编译需要用到。8j428资讯网——每日最新资讯28at.com

cd /opt/software/curl -R -O http://www.lua.org/ftp/lua-5.4.6.tar.gztar zxf lua-5.4.6.tar.gzcd lua-5.4.6make all test

安装HAProxy编译时必须的其他软件,因为gcc和openssl-devel在前面安装过,所以,这里我们只需要安装pcre-devel和systemd-devel。8j428资讯网——每日最新资讯28at.com

yum install -y pcre-devel systemd-devel

下载并编译HAProxy。8j428资讯网——每日最新资讯28at.com

cd /opt/software/curl -R -O https://www.haproxy.org/download/2.8/src/haproxy-2.8.2.tar.gztar zxf haproxy-2.8.2.tar.gzcd haproxy-2.8.2make ARCH=x86_64 TARGET=linux-glibc USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1 USE_SYSTEMD=1 USE_LUA=1 LUA_INC=/opt/software/lua-5.4.6/src/ LUA_LIB=/opt/software/lua-5.4.6/src/make install PREFIX=/usr/local/haproxyln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/

安装成功后,查看HAProxy版本。8j428资讯网——每日最新资讯28at.com

[root@localhost haproxy-2.8.2]# haproxy -vHAProxy version 2.8.2-61a0f57 2023/08/09 - https://haproxy.org/Status: long-term supported branch - will stop receiving fixes around Q2 2028.Known bugs: http://www.haproxy.org/bugs/bugs-2.8.2.htmlRunning on: Linux 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64

新建HAProxy服务文件haproxy.service,让其可以使用systemd系统和服务管理器管理。8j428资讯网——每日最新资讯28at.com

mkdir /var/run/haproxyvi /usr/lib/systemd/system/haproxy.service
[Unit]Description=HAProxy Load BalancerAfter=syslog.target network.target[Service]ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg  -c -qExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy/haproxy.pidExecReload=/bin/kill -USR2 $MAINPID[Install]WantedBy=multi-user.target

(2)HAProxy软件配置

创建HAProxy配置文件。8j428资讯网——每日最新资讯28at.com

mkdir /etc/haproxyvi /etc/haproxy/haproxy.cfg

haproxy.cfg配置文件内容,nginx配置请查看前面章节,有详细介绍如何安装配置。8j428资讯网——每日最新资讯28at.com

global    log         127.0.0.1 local6 info    #info日志,有用的信息    log         127.0.0.1 local5 notice    #notice日志,普通但重要的事件    pidfile     /var/run/haproxy/haproxy.pid    #pid文件    maxconn     20000   #最大连接数    user        haproxy    #用户 或者 uid    group       haproxy    #组 或者 gid    daemon               #后台运行    nbproc       12      #工作进程数量defaults    #默认参数    mode     http    #模式 http or tcp    log      global    retries  3     #重试次数    option   redispatch     #服务不可用后,重定向到其他健康服务器    option   dontlognull  #不记录健康检查的日志信息    maxconn  20000     #最大连接数    timeout client 60s # 客户端超时时间    timeout server 60s # 服务端超时时间    timeout connect 1s # haproxy与服务端超时时间listen admin_stats  # frontend and backend 监控    bind   *:8118    stats  uri   /haproxy?stats   #查看服务器状态路径      stats  auth  admin:123456  #用户认证,密码一定要改复杂,可以设置多个    stats  hide-version       #隐藏统计页面上的HAproxy版本信息     stats  refresh  5s    # 统计刷新频率frontend web  #listen 接收客户不同请求,并根据acl策略做不同的请求转发至backend处理    mode      http    bind      *:80     #端口    bind      *:443 ssl crt /etc/ssl/certs/***.gitegg.com.pem  #端口    option    httplog  #http格式日志    option    forwardfor # 转发客户端真实地址    option    httpclose #请求完即关闭    default_backend nginx_servers    #默认服务器组    acl nginx_acl hdr_dom(host) -i **n.gitegg.com   #定义ACL,根据域名判断    redirect scheme https code 301 if !{ ssl_fc } nginx_acl #nginx_acl http强制跳转ssl    use_backend nginx_servers if nginx_acl  #调用ACLbackend nginx_servers  #backend 定义Nginx服务器集群    balance roundrobin  #基于权重的负载均衡的方式    option  httpchk GET /test.html   #心跳检测    server nginx1 192.168.1.210:8000 maxconn 10000 cookie server1 weight 1 check inter 1s rise 2 fall 2    server nginx2 192.168.1.195:8000 maxconn 10000 cookie server2 weight 1 check inter 1s rise 2 fall 2backend nginx_servers_ssl  #backend 定义Nginx服务器集群 SSL    balance roundrobin  #基于权重的负载均衡的方式    option  httpchk GET /test.html   #心跳检测    server nginx1s 192.168.1.210:4443 ssl verify none check check-ssl maxconn 10000 cookie server1 weight 1 check inter 1s rise 2 fall 2    server nginx2s 192.168.1.195:4443 ssl verify none check check-ssl maxconn 10000 cookie server2 weight 1 check inter 1s rise 2 fall 2

配置HAProxy日志,HAProxy的日志记录始终依赖于syslog服务器,因为它不执行任何文件系统访问。使用它的标准方式是通过UDP发送日志到日志服务器,通常将其配置为127.0.0.1。HAProxy日志的八个级别:
emerg alert crit err warning notice info debug。
8j428资讯网——每日最新资讯28at.com

vi /etc/rsyslog.conf

在文件中找到一下位置放开注释。8j428资讯网——每日最新资讯28at.com

# Provides UDP syslog reception$ModLoad imudp$UDPServerRun 514

在#### RULES ####下面新增。8j428资讯网——每日最新资讯28at.com

local6.info /usr/local/haproxy/logs/info.loglocal5.notice /usr/local/haproxy/logs/notice.log

选一个磁盘空间大的目录保存日志,重启rsyslog。8j428资讯网——每日最新资讯28at.com

mkdir /usr/local/haproxy/logschmod 777 /usr/local/haproxy/logssystemctl restart rsyslog

(3)启动并验证HAProxy

启动haproxy。8j428资讯网——每日最新资讯28at.com

systemctl start haproxy#查看启动状态,如果Active: active (running),表示启动成功systemctl status haproxy.service

设置haproxy开机启动。8j428资讯网——每日最新资讯28at.com

systemctl enable haproxy.service

三、配置Keepalived实现HAproxy高可用

Keepalived默认监测自身状态是否正常,如果不正常则切换主备,虚拟IP漂移到服务状态正常的服务器上。我们需要保持HAproxy高可用,也就是主HAproxy服务挂掉后,Keepalived也需要切换主备,将虚拟IP切换到HAproxy服务状态正常的服务器上。Keepalived通过调用自定义健康检查脚本实现以上功能。8j428资讯网——每日最新资讯28at.com

1、自定义HAproxy健康检查脚本

创建脚本存放目录。8j428资讯网——每日最新资讯28at.com

mkdir /etc/keepalived/scripts

新建haproxy_check.sh文件。8j428资讯网——每日最新资讯28at.com

vi /etc/keepalived/scripts/haproxy_check.sh

haproxy_check.sh内容如下:8j428资讯网——每日最新资讯28at.com

#!/bin/bashHA=`ps -C haproxy --no-header | wc -l`if [ $HA -eq 0 ];then    systemctl start haproxy    sleep 3    if [ `ps -C haproxy --no-header | wc -l` -eq 0 ];then        systemctl stop keepalived        exit 1    fifiexit 0

赋予haproxy_check.sh执行权限。8j428资讯网——每日最新资讯28at.com

chmod +x /etc/keepalived/scripts/haproxy_check.sh

2、修改Keepalived配置文件,加入HAProxy监测脚本

vrrp_strict # 严格遵守VRRP协议,如果防火墙开启,此模式下,如果keepalived切换VIP会无法访问,可以注释掉试一下。8j428资讯网——每日最新资讯28at.com

! Configuration File for keepalivedglobal_defs {   router_id NODE_MASTER #名称唯一   vrrp_skip_check_adv_addr # 默认是不跳过检查。检查收到的VRRP通告中的所有地址可能会比较耗时,设置此命令的意思是,如果通告与接收的上一个通告来自相同的master路由器,则不执行检查(跳过检查)。   #vrrp_strict # 严格遵守VRRP协议   #vrrp_garp_interval 0 #在一个接口发送的两个免费ARP之间的延迟。可以精确到毫秒级。默认是0.   #vrrp_gna_interval 0 #在一个网卡上每组na消息之间的延迟时间,默认为0   script_user root   enable_script_security   max_auto_priority 1}# 添加HAProxy监测脚本vrrp_script check_haproxy {   script "/etc/keepalived/haproxy_check.sh"   interval 2 #检查间隔2s   weight 2 #权重   fall 1 # 2次失败代表服务不可用   rise 1 # 1次正确代表服务可用}vrrp_instance VI_1 {    state MASTER # 设置初始状态均主    interface enp6s0f1 enp6s0f0 # 设置绑定虚拟IP的网卡    virtual_router_id 51 # 集群的virtual_router_id值,主备一致    priority 100 # 路由权重    advert_int 1 #检查间隔,默认1秒    notify_master "/etc/keepalived/keepalived_notify.sh master"    notify_backup "/etc/keepalived/keepalived_notify.sh backup"    notify_fault "/etc/keepalived/keepalived_notify.sh fault"    authentication {        auth_type PASS #认证方式        auth_pass 11111111 #认证密码(密码只识别前8位)    }    virtual_ipaddress {        内网虚拟ip dev enp6s0f1 # 内网虚拟ip        公网虚拟ip dev enp6s0f0 # 公网虚拟ip    }    track_script {         check_haproxy    }}

重启keepalived服务。8j428资讯网——每日最新资讯28at.com

systemctl restart keepalived

通过以上配置之后,可以使用命令停止HAProxy,查看HAProxy服务是否能够重启,根据我们的监测脚本,即使手动停止,HAProxy仍然能够启动,Keepalived并不会发生状态转移。可以修改HAProxy的配置文件使服务无法启动,然后测试Keepalived状态转移情况。8j428资讯网——每日最新资讯28at.com

四、HAProxy使用配置总结

关于SSL证书是放在Nginx处理还是HAProxy处理,网上有相关压测结果,HAProxy的性能不如Nginx,所以我们使用SSL-Pass-Through透传的方式,将SSL证书放在Nginx处理。8j428资讯网——每日最新资讯28at.com

可以测试HAProxy使用SSL证书访问Java后台服务。8j428资讯网——每日最新资讯28at.com

HAProxy使用的pem文件,是pem和key的合并文件,即把key的内容复制到pem中。8j428资讯网——每日最新资讯28at.com

cd /etc/ssl/certscat ***.gitegg.com.pem ***.gitegg.com.key | tee ***.gitegg.com.pem

如果开启了防火墙,需要使用防火墙开放端口命令,开发对应的端口。8j428资讯网——每日最新资讯28at.com

firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --zone=public --add-port=443/tcp --permanentfirewall-cmd --zone=public --add-port=8118/tcp --permanentfirewall-cmd --zone=public --add-port=8000/tcp --permanentfirewall-cmd --reload# 查看当前系统打开的所有端口firewall-cmd --zone=public --list-ports

通过http://ip:port/haproxy?stats访问,查看HAProxy统计状态。8j428资讯网——每日最新资讯28at.com

8j428资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-13622-0.html微服务部署—HAProxy+Keepalived高可用负载均衡集群配置

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Scala语言入门:初学者的基础语法指南

下一篇: 每个后端都应该了解的OpenResty入门以及网关安全实战

标签:
  • 热门焦点
  • K60 Pro官方停产 第三方瞬间涨价

    K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • 十个可以手动编写的 JavaScript 数组 API

    十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • 一年经验在二线城市面试后端的经验分享

    一年经验在二线城市面试后端的经验分享

    忠告这篇文章只适合2年内工作经验、甚至没有工作经验的朋友阅读。如果你是2年以上工作经验,请果断划走,对你没啥帮助~主人公这篇文章内容来自 「升职加薪」星球星友 的投稿,坐
  • 从零到英雄:高并发与性能优化的神奇之旅

    从零到英雄:高并发与性能优化的神奇之旅

    作者 | 波哥审校 | 重楼作为公司的架构师或者程序员,你是否曾经为公司的系统在面对高并发和性能瓶颈时感到手足无措或者焦头烂额呢?笔者在出道那会为此是吃尽了苦头的,不过也得
  • 为什么你不应该使用Div作为可点击元素

    为什么你不应该使用Div作为可点击元素

    按钮是为任何网络应用程序提供交互性的最常见方式。但我们经常倾向于使用其他HTML元素,如 div span 等作为 clickable 元素。但通过这样做,我们错过了许多内置浏览器的功能。
  • 中国家电海外掘金正当时|出海专题

    中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 大厂卷向扁平化

    大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 三星折叠屏手机去年销售近1000万台 今年目标定为1500万

    三星折叠屏手机去年销售近1000万台 今年目标定为1500万

    7月29日消息,三星率先发力可折叠手机市场,在全球市场已经取得了非常亮眼的成绩,接下来会进一步巩固和扩大这一优势。三星在推出Galaxy Z Flip5和Galax
  • iQOO Neo8系列今日官宣:首发天玑9200+ 全球安卓最强芯!

    iQOO Neo8系列今日官宣:首发天玑9200+ 全球安卓最强芯!

    在昨日举行的的联发科新一代旗舰芯片天玑9200+的发布会上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品将全球首发搭载这款当前性能最强大的移动平台
Top