Linux服务之lvs+keepalived nginx+keepalived负载均衡实例解析

目录

一.LVS+KeepAlived高可用负载均衡集群的部署

二.Nginx+KeepAlived高可用负载均衡集群的部署


一.LVS+KeepAlived高可用负载均衡集群的部署

实验环境

主keepalived:192.168.181.10 lvs (7-1)

备keepalived:192.168.181.100 lvs (7-2)

web1:192.168.181.11 (7-3)

web2:192.168.181.12 (7-4)

vip:192.168.181.188

客户机访问

实验开始前关闭所有机器的防火墙

systemctl stop firewalld.service

setenforce 0

主上操作(7-1)

yum install ipvsadm keepalived -y

modprobe ip_vs

cat /proc/net/ip_vs

ipvsadm-save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

cd /etc/keepalived/

cp keepalived.conf keepalived.conf.bak

#复制一份

vim keepalived.conf (修改相关配置)

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

#修改邮箱指向自己(10行)

smtp_connect_timeout 30

router_id LVS_01

#指定服务器名称主备需要不一样(12行)

vrrp_skip_check_adv_addr

#vrrp_strict

#14行需要注释否则服务启动有问题

vrrp_garp_interval 0

vrrp_gna_interval 0

}

vrrp_instance VI_1 {

state MASTER

#指定服务器类型MASTER为主 BACKUP为备(20行)

interface ens33

#修改网卡名称为ens33(21)

virtual_router_id 10

#指定虚拟路由器的ID号主备需要一致

#nopreempt

#非抢占模式两个节点都需要配置去掉注释

priority 100

#设定优先级数字越大优先级越高,准备需要不一样

advert_int 1

#通告间隔(查看是否存活)

authentication {

auth_type PASS

#认证类型

auth_pass 123456

#修改验证密码,主备需要一样(27行)

}

virtual_ipaddress {

192.168.181.188

#指定群集vip地址

}

}

virtual_server 192.168.181.188 80 {

delay_loop 6

#健康间隔时间6秒

lb_algo rr

#调度算法轮询

lb_kind DR

#lvs模式为DR

persistence_timeout 0

#连接保持时间改为0 否则 无法体现效果

protocol TCP

#采用协议

real_server 192.168.181.11 80 {

#43行修改地址为真实主机地址

weight 1

#45行删除

#节点权重

TCP_CHECK {

connect_port 80

#检查目标端口

connect_timeout 3

#连接超时

nb_get_retry 3

#重试次数

delay_before_retry 3

#重试间隔时间

}

}

real_server 192.168.181.12 80 {

#第二个

weight 1

TCP_CHECK{

connect_port 80

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

scp /etc/keepalived/keepalived.conf root@192.168.181.100:/etc/keepalived/ (复制给从7-2)

vim /etc/sysctl.conf

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

systemctl restart keepalived.service

备上操作(7-2)

yum install ipvsadm keepalived -y

modprobe ip_vs

cat /proc/net/ip_vs

ipvsadm-save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

cd /etc/keepalived/

cp keepalived.conf keepalived.conf.bak

#复制一份

vim keepalived.conf (从主上拷贝过来的修改以下三项)

router_id LVS_02

state BACKUP

priority 90

vim /etc/sysctl.conf

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

systemctl restart keepalived.service

在web1 web2 上操作

yum install httpd -y

ifconfig lo:0 192.168.181.188 netmask 255.255.255.255

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

sysctl -p

route add -host 192.168.91.188 dev lo:0

#设置路由

分别在web1 web2上输入

echo 7-3 > /var/www/html/index.html

echo 7-4 > /var/www/html/index.html

最后用客户机curl 192.168.181.188 会发现7-3 7-4 出现概率大概为1:1

即使关掉7-1lvs keepalived 7-2也可以支持工作

二.Nginx+KeepAlived高可用负载均衡集群的部署

实验环境:

主keepalived:192.168.91.100 nginx

备keepalived:192.168.91.101 nginx

web1:192.168.91.102

web2:192.168.91.103

vip:192.168.91.188

客户机访问

7-3 7-4

systemctl stop firewalld

setenforce 0

yum install httpd -y

echo 7-3 > /var/www/html/index.html

systemctl start httpd

systemctl stop firewalld

setenforce 0

yum install httpd -y

echo 7-4 > /var/www/html/index.html

systemctl start httpd

7-1

systemctl stop firewalld

setenforce 0

yum install epel-release.noarch -y

yum install -y nginx

systemctl start nginx

vim /etc/nginx/nginx.conf

upstream web {

server 192.168.91.102;

server 192.168.91.103;

}

location / {

proxy_pass http://web;

}

scp /etc/nginx/nginx.conf 192.168.91.101:/etc/nginx/nginx.conf

7-2

systemctl stop firewalld

setenforce 0

yum install epel-release.noarch -y

yum install -y nginx

systemctl start nginx

7-1 7-2 都要操作

yum install keepalived -y

7-1

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_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.91.188 #修改vip

}

track_script {

check_down

}

}

vim /etc/keepalived/ng.sh

killall -0 nginx

chmod +x /etc/keepalived/ng.sh

scp /etc/keepalived/keepalived.conf 192.168.91.101://etc/keepalived/

7-2 上操作

vim /etc/keepalived/keepalived.conf

state BACKUP

priority 80

router_id LVS02

vim /etc/keepalived/ng.sh

killall -0 nginx

chmod +x /etc/keepalived/ng.sh

最后用客户机curl 192.168.181.188 会发现7-3 7-4 出现概率大概为1:1

即使关掉7-1nginx keepalived 7-2也可以支持工作

相关推荐
网易独家音乐人Mike Zhou1 小时前
【Linux应用】开发板USB共享网络,网线或USB以太网共享网络(局域网连接PC和开发板,实现PC给开发板共享网络,USB通过NDIS驱动共享)
linux·网络·单片机·mcu·物联网·嵌入式·iot
basketball6162 小时前
Linux C 管道文件操作
linux·运维·c语言
浩浩测试一下2 小时前
Windows 与 Linux 内核安全及 Metasploit/LinEnum 在渗透测试中的综合应用
linux·运维·windows·web安全·网络安全·系统安全·安全架构
stark张宇2 小时前
Linux 文件创建、删除、移动、复制基础知识整理
linux·服务器·centos
Jiangnan_Cai4 小时前
Linux 系统 docker 部署 Dify
linux·docker·大模型·dify
Two_brushes.4 小时前
【linux网络】深入理解 TCP/UDP:从基础端口号到可靠传输机制全解析
linux·运维·服务器
FJW0208144 小时前
【Linux】系统引导修复
linux·运维·服务器
✧北辰٩(ˊωˋ*)و南冥✧5 小时前
nginx 负载均衡配置(加解决重复登录问题)
运维·nginx·负载均衡
慌糖5 小时前
CentOS 安装 Redis 简明指南
linux·redis·centos
设计师小聂!5 小时前
linux常用命令(一)
linux·运维·服务器