LVS负载均衡之DR模式

news/2024/10/19 23:25:13/

DR调度服务器 192.168.255.128

Nginx节点服务器1 192.168.255.130

Nginx节点服务器2 192.168.255.131

统一虚拟ip(vip) 192.168.255.188

访问客户端 192.168.255.134

第一步首先关掉所有虚拟机的防火墙

systemctl stop firewalld.service
setenforce 0

一、配置敷在调度器

1、加载ip_vs模块

modprobe ip_vs
cat /proc/net/ip_vs #查看模块加载结果

2、配置虚拟IP地址

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0				#若隧道模式,复制为ifcfg-tunl0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.255.188
NETMASK=255.255.255.255   #子网掩码全部为一,避免找不到

3、调整proc相应参数

因为DR调度器不再作为网关,也就是没有路由转发,所以需要关闭icmp的重定向,不充当路由器

vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

 4、配置负载分配策略

yum -y install ipvsadm 
ipvsadm-save > /etc/sysconfig/ipvsadm #这一步不能忘,否则ipvsadm无法正常启动
#配置负载均衡策略
ipvsadm -C
ipvsadm -A -t 192.168.255.188:80 -s rr #添加虚拟服务器
ipvsadm -a -t 192.168.255.188:80 -r 192.168.80.12:80 -g	#若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.255.188:80 -r 192.168.80.13:80 -g #添加真实服务器
ipvsadm
systemctl start ipvsadm 

ipvsadm -ln                    #查看节点状态,Route代表 DR模式
 

二、布置共享服务器

详情可见前一篇博客中nfs的配置,与NAT相比,无需改变

nfs看这里

两台节点服务器与nfs服务器挂载

临时挂载 mount   192.168.255.133:/opt/html        /usr/share/nginx/html

永久挂载 vim  /etc/fstab 

192.168.255.133:/opt/html /usr/share/nginx/html  nfs defaults,_netdev 0(不备份) 0(加载顺序)

 三、设置节点服务器

1、在lo网卡中设置虚接口lo:0

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0		
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.255.188
NETMASK=255.255.255.255	

可以添加一条路由记录

route add -host 192.168.255.188 dev lo:0   #临时vim /etc/rc.local    #永久
/sbin/route add -host 192.168.80.188 dev lo:0chmod +x /etc/rc.d/rc.local #赋予执行权限

2、调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突

vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1			#系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2		#系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2sysctl -p

 


http://www.ppmy.cn/news/53643.html

相关文章

干货好文 | 两地三中心到异地双活演变及关键技术探讨

两地三中心和异地多活都是分布式系统的关键技术,用于保证系统的高可用性和容错性。其中最关键的技术无疑是数据同步、同步防环和数据冲突解决。 异地容灾 & 两地三中心 两地三中心架构是一种分布式系统的架构模式,用于保证系统的高可用性和容错性。…

Python每日一练(20230428)

目录 1. 最长有效括号 🌟🌟🌟 2. 矩阵中的最长递增路径 🌟🌟🌟 3. 回文链表 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练…

vulnhub靶场之bluemoon

1.信息收集 存活主机进行探测,发现主机192.168.239.176存活。 对主机192.168.239.176进行端口扫描,发现21、22、80端口 访问http://192.168.239.176,并查看源码未发现可利用的行为。 进行目录扫描发现可疑路径/hidden_text 浏览器访问h…

ARM buildroot 的引入

一、X210 的 bsp 介绍 1、嵌入式 linux 产品的 bsp 介绍 (1) 大部分的 ARM 架构的 linux 平台的 bsp 的内容和结构都是相似的。 (2) bsp 一般是芯片厂家/板卡厂家提供的。 2、X210 的 linuxQT bsp 整体介绍 (1) tslib_x210_qtopia.tgz 是用来支持 QT 的触摸屏操作的应用层库。…

【Git 入门教程】第五节、Git远程仓库

Git是一种分布式版本控制系统,它允许开发者在不同计算机之间协作并共享代码。在本文中,我们将介绍如何以Git为基础进行远程协作。其中包括克隆仓库、推送代码、拉取代码等操作。 一、克隆仓库 要协作开发一个Git项目,需要从服务器上获取该项…

springboot server.port management.server.port 两个端口区别 Actuator

springboot项目,有时候会使用两个端口: server.port: 8010 # 本服务的端口 management.server.port: 8011 #监管本服务的服务端口第一个端口,就是我们常用的服务本身的端口,我们访问服务,就是通过这个端口。 第…

工具链和其他-异步模块加载

目录 CMD/AMD Asynchronous Module Definition(AMD异步模块定义,语法风格) Common Module Definition ES6/CommonJS CommonJS ES6 Module 加载器示例 总结 cmd和amd的区别 现在有哪些异步加载方式 整体结构 编程:commonjs es6 module (有可能解…

【Java EE】-CSS详解

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【JavaEE】 分享: 且视他人如盏盏鬼火,大胆地去走你的道路。——史铁生《病隙碎笔》 主要内容:CSS引入html的三种方式,CSS八大选择器&#xff…