当前位置: 首页 > news >正文

NGINX负载均衡及LVS-DR负载均衡集群

目录

  • LVS-DR原理
  • 搭建过程
  • nginx 负载均衡

LVS-DR原理

原理
1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间
2. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链
3. IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群
服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP
地址及端口,并将新的数据包发往POSTROUTING链
4. POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将
数据包最终发送给后端的服务器

组成:
LVS架设的服务器集群系统有三个部分组成:最前端的负载均衡层,用Load Balancer表示,中间的服务器群组层,用Server Array表示,最底端的数据共享存储层,用Shared Storage表示。

搭建过程

192.168.190.200 作为调度器director
192.168.190.201 为web服务器1
192.168.190.202 为web服务器2
192.168.190.128 为客户端
1,安装工具ipvsadm

yum install ipvsadm

2,配置LVS虚拟IP(VIP)

ifconfig ens33:200 192.168.190.200 netmask 255.255.255.0 up

3,手工执行配置添加LVS服务并增加两台RS

ipvsadm -C
ipvsadm --set 30 5 60
ipvsadm -A -t 192.168.190.200:80 -s wrr -p 20
ipvsadm -a -t 192.168.190.200:80 -r 192.168.190.201:80 -g -w 1
ipvsadm -a -t 192.168.190.200:80 -r 192.168.190.202:80 -g -w 1ipvsadm-save > /etc/sysconfig/ipvsadm

各个参数含义

            -A  添加虚拟服务器-t  设置群集地址(VIP,Virtual IP)-s  指定负载调度算法-a  添加真实服务器-d  删除真实服务器-r  指定真实服务器(Real Server)的地址-m  使用NAT模式;-g、-i分别对应DR、TUN模式-w  为节点服务器设置权重,默认为1

4, 查看配置信息

[root@localhost ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http wrr persistent 20-> 192.168.190.201:http         Route   1      0          0         -> 192.168.190.202:http         Route   1      0          0 

5,手工在RS端绑定VIP

每台real server端执行201上的操作
ifconfig lo:200 192.168.190.200 netmask 255.255.255.255 up
route add -host 192.168.190.200 dev lo
202上的操作
ifconfig lo:200 192.168.190.200 netmask 255.255.255.255 up
route add -host 192.168.190.200 dev lo

6,手工在RS端抑制ARP响应

每台real server端执行
调整内核参数,关闭arp响应

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore 
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

测试结果:需要等待一段时间再刷新就会变成201

在这里插入图片描述

nginx 负载均衡

准备机器:

负载均衡器:192.168.190.132
web1服务器: 192.168.190.128
web2服务器: 192.168.190.134
所有的机器需要安装NGINX服务

步骤:
1,在负载均衡器上

打开配置文件写入内容

vim /etc/nginx/nginx.conf
在http 区块里面新增以下内容
upstream pool1 {       # 负载均衡池,里面记录的是要转发到的服务器server 192.168.190.128:80 weight=1;     # 主机及权重值server 192.168.190.134:80 weight=1;}server {listen 80;   # 监听端口server_name www.fuzaijunheng.com;location / {proxy_pass http://pool1;  # 当访问到www.fuzaijunheng.com 时将会转发到 负载均衡池}}

2,在web1服务器上

打开配置文件写入如下:

vim /etc/nginx/nginx.conf
在http 区块里面新增以下内容:server {listen       80;server_name  192.168.190.128;location / {root    /usr/share/nginx/html1;    # 访问的目录index   index.html;   # 需要寻找的类型}然后创建目录写入数据
mkdir /usr/share/nginx/html1
echo web1 > /usr/share/nginx/html1/index.html

3,在web2服务器上

打开配置文件写入如下:

vim /etc/nginx/nginx.conf
在http 区块里面新增以下内容:server {listen       80;server_name  192.168.190.134;location / {root    /usr/share/nginx/html1;    # 访问的目录index   index.html;   # 需要寻找的类型}然后创建目录写入数据
mkdir /usr/share/nginx/html1
echo web2 > /usr/share/nginx/html1/index.html

最后,重启3台机器
4,域名写入解析文件

echo 192.168.190.132 www.fuzaijunheng.com >> /etc/hosts

5,在负载均衡器上测试

[root@localhost ~]# for((i=0;i<6;i++)); do curl www.fuzaijunheng.com; done
web1
web2
web1
web2
web1
web2

以上就测试成功了

http://www.lryc.cn/news/125361.html

相关文章:

  • 由于目标计算机积极拒绝,无法连接。 Could not connect to Redis at 127.0.0.1:6379
  • 电脑提示数据错误循环冗余检查怎么办?
  • 剑指offer62.圆圈中最后剩下的数字
  • Python分享之 Spider
  • Golang项目中如何轻松实现私有仓库pkg包的引入
  • Python项目实战:基于napari的3D可视化(点云+slice)
  • go的gin和gorm框架实现切换身份的接口
  • 仓库库存管理难点在哪?有哪些仓库库存管理软件?
  • 服务链路追踪
  • macOS - 安装使用 libvirt、virsh
  • Windows Server 2019设置使用照片查看器查看图片的设置方法
  • 【需求输出】流程图输出
  • opencv+ffmpeg+QOpenGLWidget开发的音视频播放器demo
  • stable-diffusion-webui 的模型更新
  • Gin模板语法
  • Go http.Handle和http.HandleFunc的路由问题
  • 如何使用Kali Linux进行渗透测试?
  • 简单易用且高效的跨平台开发工具:Xojo 2023 for Mac
  • HIVE SQL实现分组字符串拼接concat
  • 【问心篇】渴望、热情和选择
  • 【贪心】CF1841 D
  • 移动端预览指定链接的pdf文件流
  • 【Go 基础篇】Go语言字符类型:解析字符的本质与应用
  • Java基础(十二)面向对象编程 OOP
  • 在阿里云服务器上安装Microsoft SharePoint 2016流程
  • Ubuntu设置定时重启
  • sqlloader学习笔记
  • 内网ip与外网ip
  • 分布式 - 消息队列Kafka:Kafka消费者和消费者组
  • feign调用和被调用者字段名称不对应解决