keepalive+nginx高可用架构

keepalive+nginx架构

一.配置真实服务器web1和web2

1.关闭防火墙,并在真实服务器下载http服务

复制代码
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install  httpd  -y

2.分别在web1和web2上制作网页,并开启http服务

复制代码
web1
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
[root@localhost html]# echo  zxy13 >  /var/www/html/index.html
[root@localhost html]# systemctl  start  httpd

web2
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
[root@localhost html]# echo  zxy14 >  /var/www/html/index.html
[root@localhost html]# systemctl  start  httpd

web1

web2

二.配置代理服务器

代理服务器:主192.168.240.11

备192.168.240.12

1.关闭防火墙,并安装epel源和nginx

复制代码
[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum  install epel-release.noarch  -y
[root@localhost ~]# yum  install nginx  -y

2.编辑nginx配置文件

在192.168.240.11上

配置文件http语句块下加入组和server语句块下加入location匹配实现负载均衡

3.将192.168.240.11代理服务器上/etc/nginx/nginx.conf文件远程拷贝到192.168.240.12的/etc/nginx/nginx.conf

4.安装下载keepalive服务,编辑配置文件

在192.168.240.11上 vim /etc/keepalived/keepalived.conf

复制代码
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1      # 修改邮箱地址
   smtp_connect_timeout 30  
   router_id LVS01            # 修改名称
   vrrp_skip_check_adv_addr  
   #vrrp_strict              #关闭严格模式
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script check_down {
        script  "/etc/keepalived/ng.sh"   
        interval 1
        weight -30
        fall  3
        rise 2
        timeout 2
}

vrrp_script check_down {
        script  "/etc/keepalived/ng.sh"   #指明脚本的位置   
        interval 1            #每隔1s 执行一次检测
        weight -30             #如果 脚本执行失败自动减少优先级30
        fall  3                # 3次不成功才标注为失败 
        rise 2                 #nginx  重新起来后检测两次成功 才真的成功  
        timeout 2               #超时时间  2s 
}



vrrp_instance VI_1 {
    state MASTER
    interface ens33    #修改网卡的名称
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
         auth_type PASS
         auth_pass 1111
    }
    virtual_ipaddress {
        192.168.240.188  #修改ip
    }
     track_script {
     check_down
 }
    
}

5.在192.168.240.13(由于12机上环境不干净换机做)上 vim /etc/keepalived/keepalived.conf

复制代码
router_id LVS02  #修改为LVS02
   vrrp_skip_check_adv_addr
   #vrrp_strict  #注释关闭严格模式
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_script check_down {
        script  "/etc/keepalived/ng.sh"
        interval 1
        weight -30
        fall  3
        rise 2
        timeout 2
}
vrrp_instance VI_1 {
    state BACKUP  #修改为备
    interface ens33  #网卡
    virtual_router_id 51
    priority 80  #优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.240.188 #地址
    }
    track_script {
    check_down
    }
}

6.在客户机上测试

(1)curl 虚拟地址192.168.240.188

tcpdump客户机上抓包主服务器在发送报文

(2)关闭主服务器nginx使用ip a 查看 192.168.240.188 已经不在主服务器上

tcpdump客户机上抓包备服务器在发送报文

使用 ip a 命令查看备服务器192.168.240.13 ,192.168.240.188在备服务器上

启动主服务器

ip a 查看主服务器,192.168.240.188 在主服务器上被主服务器抢占

tcpdump -i ens33 host 224.0.0.18 -nn 在客户机查看

相关推荐
团象科技10 小时前
从出海业务落地视角观察 海外服务器跑开源软件的实操逻辑演变
运维·服务器·开源软件
加成BUFF10 小时前
第七天 ROS《 参数服务器与Launch文件》
运维·ros·参数服务器
snow@li10 小时前
CI/CD:深入理解 CI/CD(2026版)
运维·ci/cd
java_cj10 小时前
K8s入门第一课:从零理解Kubernetes核心概念与架构设计
运维·云原生·容器·架构·kubernetes
SDWAN_Cheap10 小时前
网络基础扫盲第二弹:DNS、DHCP、ARP、NAT、TCP/IP,从原理到实践
网络·tcp/ip·dns·网络基础
snow@li10 小时前
nginx:详解与速查表 / Nginx = 反向代理 + 负载均衡 + 静态服务器 + HTTP 缓存 / 请求分发、静态加速、上线不中断
linux·服务器·nginx
z92098102310 小时前
常用的改机软件 MTK 高通 展讯 紫光展锐 改串 一键新机 怎么做?修改SN NV数据 qcn
网络
Dynadot_tech10 小时前
掘金优质中文域名——Nameclub中文IDN交易板块重磅上线
网络·域名·中文域名·dynadot·域名管理·域名交易
鼎讯信通10 小时前
一机多能,能源通信运维优选——鼎讯JM-Q150 实测解析
运维·能源·信息与通信·天馈线测试仪
Bobolink_10 小时前
海外拍卖直播风控数据上报:跨境网络加密传输方案设计实践
网络·数据传输·跨境直播·直播网络