nginx+keepalived负载均衡及高可用

发布于:2025-07-11 ⋅ 阅读:(25) ⋅ 点赞:(0)

1、实验环境

主机名 IP地址 身份
openEuler-1

192.168.93.10

192.168.23.10(心跳检测)

Master
openEuler-2

192.168.93.11

192.168.23.11(心跳检测)

Banckup
openEuler-3 192.168.93.12 RS
openEuler-4 192.168.93.13 RS
Rocky-1 192.168.93.20 client

2、配置nginx的反向代理

[root@openEuler-1 ~]# cd /etc/nginx/conf.d/
[root@openEuler-1 conf.d]# vim lb.conf
upstream webs {
        server 192.168.93.12:80;
        server 192.168.93.13:80;
}

server {
        location / {
                proxy_pass http://webs;
        }
}


[root@openEuler-1 conf.d]# scp lb.conf 192.168.121.12:$PWD

# 重启nginx服务

3、配置keepalived

[root@openEuler-1 conf.d]# cd /etc/keepalived/

[root@openEuler-1 keepalived]# vim keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_1
}

vrrp_script check_nginx {
        script "killall -0 nginx"
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    lvs_sync_daemon_interface ens37
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    track_script {
        check_nginx
    }

    virtual_ipaddress {
        192.168.93.100
    }
}

[root@openEuler-2 keepalived]# vim keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_2
}

vrrp_script check_nginx {
        script "killall -0 nginx"
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    lvs_sync_daemon_interface ens37
    virtual_router_id 51
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    track_script {
        check_nginx
    }

    virtual_ipaddress {
        192.168.93.100
    }
}

4、测试

[root@openEuler-1 conf.d]# systemctl stop nginx.service

Jul  9 10:40:08 openEuler-2 Keepalived_vrrp[2746]: (VI_1) Backup received priority 0 advertisement
Jul  9 10:40:08 openEuler-2 Keepalived_vrrp[2746]: (VI_1) Backup received priority 0 advertisement
Jul  9 10:40:09 openEuler-2 Keepalived_vrrp[2746]: (VI_1) Receive advertisement timeout
Jul  9 10:40:09 openEuler-2 Keepalived_vrrp[2746]: (VI_1) Entering MASTER STATE
Jul  9 10:40:09 openEuler-2 Keepalived_vrrp[2746]: (VI_1) setting VIPs.
Jul  9 10:40:09 openEuler-2 Keepalived_vrrp[2746]: (VI_1) Sending/queueing gratuitous ARPs on ens33 for 192.168.93.100
Jul  9 10:40:09 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100
Jul  9 10:40:09 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100
Jul  9 10:40:09 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100
Jul  9 10:40:09 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100
Jul  9 10:40:09 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100
Jul  9 10:40:09 openEuler-2 kernel: [ 1986.411925] IPVS: stopping backup sync thread 2748 ...
Jul  9 10:40:09 openEuler-2 kernel: [ 1986.413813] IPVS: sync thread started: state = MASTER, mcast_ifn = ens37, syncid = 0, id = 0
Jul  9 10:40:14 openEuler-2 Keepalived_vrrp[2746]: (VI_1) Sending/queueing gratuitous ARPs on ens33 for 192.168.93.100
Jul  9 10:40:14 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100
Jul  9 10:40:14 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100
Jul  9 10:40:14 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100
Jul  9 10:40:14 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100
Jul  9 10:40:14 openEuler-2 Keepalived_vrrp[2746]: Sending gratuitous ARP on ens33 for 192.168.93.100


网站公告

今日签到

点亮在社区的每一天
去签到