LVS+keepalived整合负载均衡配置

准备三台服务器;负载均衡服务器192.168.45.136,后端机器1,92.168.45.135,后端机器2,192.168.45.138

在两台后端机器上安装nginx服务,yum install -y nginx,并且启动nginx服务,systemctl start nginx,并且在两台后端机器上配置回环地址192.168.45.188

复制代码
ifconfig lo:0 192.168.45.188 netmask 255.255.255.255

配置完成后通过本机访问192.168.45.188即可访问到两台后端机器的nginx

通过命令:arp -a显示ping通的物理地址138

我们需要抑制回环地址的直接响应,防止用户直接访问两台后端机器

首先在136负载均衡机器上配置物理网卡

复制代码
ifconfig ens33:1 192.168.45.188 netmask 255.255.255.255

前台访问vip地址188时,三台服务其都可响应,我们要抑制后端两台机器的vip访问

通过命令echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore抑制两台后端机器的arp广播

复制代码
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

抑制后通过主机访问188ip,只有LVS均衡服务器上的物理网卡响应

此时再访问188服务器,显示失败

在负载均衡机器上配置LVS均衡池,与net模式不同,需要将-m改为-g

添加物理网卡:ifconfig ens33:1 192.168.45.188 netmask 255.255.255.255

LVSarrp配置:ipvsadm -A -t 192.168.45.188:80 -s wrr

ipvsadm -a -t 192.168.45.188:80 -r 192.168.45.138 -g -w 100

ipvsadm -a -t 192.168.45.188:80 -r 192.168.45.135 -g -w 100

此时再访问188即为LVS均衡服务器转发给后端请求,返回访问信息

当任意一台nginx宕机时,用户仍可访问网页,只有当两台都宕机时才访问失败

访问后显示连接次数

当想要删除配置的LVS时,删除wrr188命令为

ipvsadm -D -t 192.168.45.188:80

当想删除后端机器时:ipvsadm -d -t 192.168.45.188:80 -r 192.168.45.135

ipvsadm -d -t 192.168.45.188:80 -r 192.168.45.138

复制代码
[root@localhost ~]# ipvsadm -d -t 192.168.45.188:80 -r 192.168.45.135
[root@localhost ~]# ipvsadm -d -t 192.168.45.188:80 -r 192.168.45.138
[root@localhost ~]# ipvsadm -D -t 192.168.45.188:80
[root@localhost ~]# ipvsadm -L -n

卸载配置的ens33:1网卡

LVS+NGINX无缝整合,自动配置LVS,在136机器上安装keepalived服务,配置文件如下

cd /etc/keepalived

复制代码
! Configuration File for keepalived
#全局配置,配置指定通知邮件发送邮箱
global_defs {
  notification_email {
#指定发送的邮箱
      support@xin.linux
 }
#指定由哪个服务器地址发送邮件
    notification_email_from wgkgood@163.com
#连接的服务器地址
    smtp_server 127.0.0.1
#连接超时时间 
    smtp_connect_timeout 30
#连接服务名称写成自己的Ip地址也可
    router_id LVS_DEVEL
}

 # VI_1实例名称,也可改成其他 
 vrrp_instance VI_1 {
#状态master或backup
     state MASTER
#路由器对外通信名称,可命名为网卡名称 
     interface ens33
#虚拟路由ID,要与备机相同 
     virtual_router_id 51
#优先级
     priority 100
#设置不抢占关键字
     nopreempt
#成为master的服务器每隔5秒发送包 
     advert_int 5
     authentication {
#彼此认证密码,与备机保持相同 
         auth_type  PASS
         auth_pass  1111

     }
#vip配置
     virtual_ipaddress {
         192.168.45.188
     }
 }
#LVS配置
virtual_server 192.168.45.188 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    persistence_timeout 60
    protocol TCP
    real_server 192.168.45.138 80{
        weight 100
        TCP_CHECK {
             connect_timeout 10
             nb_get_retry 3
             delay_before_retry 3
             connect_port 80
        }
    }
    real_server 192.168.45.135 80 {
        weight 100
        TCP_CHECK {
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
        }
    }
}

重启keepalived服务后,即可自动配置LVS

前台即可成功访问nginx

同样当后端服务器宕机时,LVS服务器自动检测端口失活,删除LVS配置,查看keepalived日志文件:tail -fn200 /var/log/messages

keepalived显示3个进程,1个主进程,一个VRRP进程,一个自动检测进程

相关推荐
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之avio_open调用流程与实战(三十八)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
雪落漂泊4 小时前
Linux进程(五):进程地址空间篇
linux·运维·服务器
wdeok5 小时前
Socket编程Tcp
服务器·网络·tcp
千舟软件6 小时前
报修系统对接企业微信和钉钉的3种方式_千舟报修云
服务器·钉钉·企业微信
迪康coolmu21 小时前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
qq_371802111 天前
Ubuntu Linux中安装WorkBuddy
linux·运维·服务器·ubuntu
坤坤子吖1 天前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
say_fall1 天前
【AI大模型】MCP 模型上下文协议:客户端-服务器架构、JSON-RPC 消息与能力协商、工具发现与调用链路、与函数调用的分工
服务器·人工智能·架构
木子欢儿1 天前
国内 macOS/Linux 安装 rust
linux·运维·服务器·macos·rust
迪菲赫尔曼1 天前
【基础篇 26】第一次在服务器完成训练:准备数据、断线继续、检查成果与备份
运维·服务器·人工智能·机器学习·计算机视觉