LVS+Keepalived+Nginx高可用负载均衡

   日期:2020-06-02     浏览:113    评论:0    
核心提示:LVS负载均衡Linux Virtual Server章文崇博士主导的开源负载均衡项目(原阿里架构)LVS(ipvs)已经集成到Linux内核负载均衡调度器LVS基于四层,工作效率更高网络拓扑图这是Nginx的拓扑图这是LVS拓扑图主要是使用IPVS去实现LVS三种模式LVS-NAT这是普通的模式,不适合并发特别大的情况请求通过LVS服务器,导向不同的REAL Server去,响应结束还需要LVS服务器返回响应报文,是不高可用的一种方案LVS-TUN上行请求,通过L运维

LVS负载均衡

  • Linux Virtual Server
  • 章文崇博士主导的开源负载均衡项目(原阿里架构)
  • LVS(ipvs)已经集成到Linux内核
  • 负载均衡调度器
  • LVS基于四层,工作效率更高

网络拓扑图

这是Nginx的拓扑图

这是LVS拓扑图

主要是使用IPVS去实现

LVS三种模式

LVS-NAT


这是普通的模式,不适合并发特别大的情况
请求通过LVS服务器,导向不同的REAL Server去,响应结束还需要LVS服务器返回响应报文,是不高可用的一种方案

LVS-TUN


上行请求,通过LVS,但是响应各自返回给浏览器端

但是这样的方案是通过隧道去实现的,这样的每个节点都需要一个公网IP,也就是说你的真是服务器被暴露在公网

LVS-DR


通过这种DR模式,可以限制出口、入口,都走统一的路由出口,这样我们的服务器可以不用暴露在公网

配置虚拟IP

cd /etc/sysconfig/network-scripts/
ls
cp ifcfg-ens33 ifcfg-ens33:1
vim  ifcfg-ens33:1
#配置虚拟ip
ipaddr=xxx

service network restart
重新启动网络服务

下来安装ipvsadm

yum install ipvsadm
ipvsadm -Ln

使用lo构建虚拟ip
还在当前目录下,拷贝

cp ifcfg-lo ifcfg-lo:1
vim  ifcfg-lo:1

进去修改一下

虚拟网络IP已经构建好,再找一台备机同样操作,两台机器都使用150做虚拟IP

APR通告行为

如何配置apr通告行为

vim /etc/sysctl.conf


刷新生效

sysctl -p

添加报文路由,返回的报文都给150

route add -host 192.168.1.150 dev lo:1
route -n

这样是重启会失效的,需要配置到/etc/rc.local

开启DR模式

[root@iZkpcpzbqiupj6Z ~]# ipvsadm -h
ipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)
Usage:
  ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine]
  ipvsadm -D -t|u|f service-address
  ipvsadm -C
  ipvsadm -R
  ipvsadm -S [-n]
  ipvsadm -a|e -t|u|f service-address -r server-address [options]
  ipvsadm -d -t|u|f service-address -r server-address
  ipvsadm -L|l [options]
  ipvsadm -Z [-t|u|f service-address]
  ipvsadm --set tcp tcpfin udp
  ipvsadm --start-daemon state [--mcast-interface interface] [--syncid sid]
  ipvsadm --stop-daemon state
  ipvsadm -h

Commands:
Either long or short options are allowed.
  --add-service     -A        add virtual service with options
  --edit-service    -E        edit virtual service with options
  --delete-service  -D        delete virtual service
  --clear           -C        clear the whole table
  --restore         -R        restore rules from stdin
  --save            -S        save rules to stdout
  --add-server      -a        add real server with options
  --edit-server     -e        edit real server with options
  --delete-server   -d        delete real server
  --list            -L|-l     list the table
  --zero            -Z        zero counters in a service or all services
  --set tcp tcpfin udp        set connection timeout values
  --start-daemon              start connection sync daemon
  --stop-daemon               stop connection sync daemon
  --help            -h        display this help message

先看看他的帮助文档
重点用-A -t

首先创建一个集群
ipvsadm -A -t 192.168.1.150:80 -s rr
添加集群节点


如上图中我们就可以看到已经创建好两个节点了

持久化机制

LVS持久化会默认保存请求300s,300秒超过后才会开启一个轮训,不然你一直访问都是同一台机子

有两个地方可以设置

一般不要改懂这两个值,官方默认的还是非常合理的一个配置

使用Keepalived+LVS高可用


可以使用keepalived配合LVS去实现LVS高可用方案
首先修改keepalived配置文件中VS配置,再添加响应的Nginx服务器


设置健康检查

以上就是主节点的创建
下来整个从节点

修改router id与权重还有状态为备机

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服