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也可以支持工作

相关推荐
yuxb7322 分钟前
Linux 文本处理与 Shell 编程笔记:正则表达式、sed、awk 与变量脚本
linux·笔记·正则表达式
刘一说34 分钟前
CentOS 系统 Java 开发测试环境搭建手册
java·linux·运维·服务器·centos
wdxylb6 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
飞雪20077 小时前
Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
linux·macos·阿里云·vmware·虚拟机·aliyun·alibaba cloud
路溪非溪8 小时前
关于Linux内核中头文件问题相关总结
linux
Lovyk10 小时前
Linux 正则表达式
linux·运维
Fireworkitte11 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil90011 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char12 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
淮北也生橘1213 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习