一、DR模式LVS搭建

1、准备工作

  • 调度器dir:192.168.242.128
  • 真实服务器rs1:192.168.242.129,网关恢复为之前的原始网关
  • 真实服务器rs2:192.168.242.130,网关恢复为之前的原始网关
  • VIP:192.168.242.110

2、dir上编写脚本

[root@zlinux-01 ~]# vim /usr/local/sbin/lvs_dr.sh#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.242.110
rs1=192.168.242.129
rs2=192.168.242.130
#ifdown ifup 同等于重启网卡,对虚拟网卡进行重置
#防止再次启动脚本的时候,再次设置虚拟网卡的IP地址
ifdown ens33
ifup ens33
#注意这里的网卡名字
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1[root@zlinux-01 ~]# sh /usr/local/sbin/lvs_dr.sh
成功断开设备 'ens33'。
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/2)

3、rs上编写脚本(两台内容相同)

[root@zlinux-02 ~]# vim /usr/local/sbin/lvs_dr_rs.sh#!/bin/bash
vip=192.168.242.110
ifdown lo
ifup lo
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档 www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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[root@zlinux-02 ~]# sh /usr/local/sbin/lvs_dr_rs.sh

4、测试

我在这里是用的第四台虚拟机测试的,没有的话可以直接在浏览器输入VIP地址测试。

[root@zlinux-04 ~]# curl 192.168.242.110
LVS-zlinux03
[root@zlinux-04 ~]# curl 192.168.242.110
LVS-zlinux02
[root@zlinux-04 ~]# curl 192.168.242.110
LVS-zlinux03
[root@zlinux-04 ~]# curl 192.168.242.110
LVS-zlinux02
[root@zlinux-04 ~]# curl 192.168.242.110
LVS-zlinux03

二、keepalived+LVS

完整架构需要两台服务器(角色为dir)分别安装keepalived软件,目的是实现高可用,但keepalived本身也有负载均衡的功能,所以本次实验可以只安装一台keepalived;
keepalived内置了ipvsadm的功能,所以不需要再安装ipvsadm包,也不用编写和执行那个lvs_dir的脚本。

1、准备工作

主keepalived(调度器dir):192.168.242.128
真实服务器rs1:192.168.242.129,网关恢复为之前的原始网关
真实服务器rs2:192.168.242.130,网关恢复为之前的原始网关
VIP:192.168.242.110

2、修改keepalived配置问价

[root@zlinux-01 ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak    //备份下配置文件
[root@zlinux-01 ~]# > /etc/keepalived/keepalived.conf     //清空
[root@zlinux-01 ~]# vim /etc/keepalived/keepalived.conf             //添加以下内容vrrp_instance VI_1 {#备用服务器上为 BACKUPstate MASTER interface ens33 virtual_router_id 51#备用服务器上为90 priority 100 auth_pass zlinux}   virtual_ipaddress {192.168.242.110}
}
virtual_server 192.168.242.110 80 {#(每隔10秒查询realserver状态) delay_loop 10 #(lvs 算法)lb_algo wlc#(DR模式)lb_kind DR#(同一IP的连接60秒内被分配到同一台realserver)persistence_timeout 0 #(用TCP协议检查realserver状态)protocol TCP real_server 192.168.242.129 80 {#(权重) weight 100TCP_CHECK {#(10秒无响应超时)connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}   real_server 192.168.242.130 80 {weight 100TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}}
}  

3、启动keepalived

[root@zlinux-01 ~]# ipvsadm -C           //清空之前的规则,因为之前执行过LVS脚本
[root@zlinux-01 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@zlinux-01 ~]# systemctl start keepalived     //启动
[root@zlinux-01 ~]# ps aux | grep keep
root       3406  0.0  0.0 120720  1404 ?        Ss   18:21   0:00 /usr/sbin/keepalived -D
root       3407  0.0  0.1 127464  3324 ?        S    18:21   0:00 /usr/sbin/keepalived -D
root       3408  0.0  0.1 131656  2848 ?        S    18:21   0:00 /usr/sbin/keepalived -D
root       3414  0.0  0.0 112680   976 pts/0    R+   18:25   0:00 grep --color=auto keep

还需要在两台rs上执行sh /usr/local/sbin/lvs_dr_rs.sh

4、测试

检验方法1:
在浏览器输入VIP192.168.242.110,然后故意停掉一台rs的Nginx服务,然后刷新浏览器看结果。
检验方法2:
在调度器执行相关命令,查看连接数:

[root@zlinux-01 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.242.110:80 wlc-> 192.168.242.129:80           Route   100    0          0
[root@zlinux-01 ~]# ipvsadm -ln                 //打开另一台Nginx服务,刷新之后,两个连接
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.242.110:80 wlc-> 192.168.242.129:80           Route   100    0          0         -> 192.168.242.130:80           Route   100    1          0 

转载于:https://blog.51cto.com/3069201/2097093

Linux集群:LVS搭建负载均衡集群(二)相关推荐

  1. 使用lvs搭建负载均衡集群

    有时候,单台服务器的性能可能无法应付大规模的服务请求,且其一旦出现故障,就会造成用户在一段时间内无法访问.通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益. 集群 ...

  2. 基于redhat linux虚拟服务器的web负载均衡集群(piranha+LVS)

    基于redhat linux虚拟服务器的web负载均衡集群 硬件环境 分发机 LB1:192.168.0.129 LB2:192.168.0.130 真实节点主机 NODE1:192.168.0.13 ...

  3. 【LVS】负载均衡集群

    LVS (Linux Virtual Server)是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.LVS可以实现LINUX平台下的简单负载均衡. 其中LVS/NAT是一 ...

  4. LVS四层负载均衡集群

    大型网站高并发解决方案LVS 文章目录 大型网站高并发解决方案LVS 一.集群功能分类 LB 图示 负载均衡产品分类 软件负载均衡设备 硬件负载均衡设备 HA 二.负载均衡 负载均衡的主要方式 htt ...

  5. keepalived+LVS实现负载均衡集群

    keepalived keepalived基于vrrp(虚拟路由冗余)协议,是vrrp协议在linux主机上的实现,早先是设计出来和LVS协同工作的,在配置文件中可以直接支持生成ipvs规则 vrrp ...

  6. linux下apache tomcat jk集群,apache tomcat 负载均衡集群和session复制 基于jk

    apache服务器和tomcat的连接方法其实有三种:JK.http_proxy和ajp_proxy,本文主要介绍最为常见的JK. 基于centos5.5 linux下配置: 1.安装tomcat7. ...

  7. Nginx搭建负载均衡集群

    (1).实验环境 youxi1 192.168.5.101 负载均衡器 youxi2 192.168.5.102 主机1 youxi3 192.168.5.103 主机2 (2).Nginx负载均衡策 ...

  8. linux集群系列(4) --- LVS之负载均衡集群 --- 持久连接

    一.简介 1.1. lvs的持久连接简介 先说说lvs的持久连接能干什么:无论你选择lvs的何种转发策略,如果你想确定来自某一个客户端的所有连接均返回到同一台Real Server,就需要LVS的持久 ...

  9. linux ajp集群,Linux下apache tomcat ajp_proxy 负载均衡+集群+session 复制

    11.查看 netstat –ant tcp        0      0 ::ffff:192.168.15.124:4000  :::*                        LISTE ...

  10. 18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建

    2019独角兽企业重金招聘Python工程师标准>>> 18.6 负载均衡集群介绍 实现负载均衡集群的软件有:LVS.Keepalived.Nginx.haproxy等.其中LVS属 ...

最新文章

  1. java 调用solr服务器_Solr环境搭建及IK分词的集成及solrJ的调用(一)
  2. 算法复杂度为O(N) 的排序算法
  3. oracle表是动态表怎么算排名,Oracle学习动态性能表
  4. Kendo UI开发教程:Kendo UI模板概述
  5. php dingo和jwt,dingo配合laravel、JWT使用
  6. java自动封箱_Java程序员面试,自动封箱/拆箱原理与包装类的缓冲机制你知道么?(转)...
  7. C++实现的Miller-Rabin素性测试程序
  8. PHP移动互联网开发笔记(6)——MySQL数据库基础回想
  9. mysql漏洞如何打补丁_WordPress 5.1 CSRF to RCE 漏洞详解
  10. ROST CM使用方法
  11. I²C、SMBus、PMBus关系
  12. Python爬虫-微信定时消息发送
  13. ardruino控制继电器_用 Arduino 实现带继电器的拨动开关
  14. SSRF利用协议中的万金油——Gopher
  15. 多旋翼无人机ROSC++开发例程(四):基于Prometheus开源项目与Casadi开源优化求解器的模型预测控制简单应用例程
  16. 在win10中加载ISO文件到虚拟光驱
  17. Go语言中的字符串特性
  18. APP与小程序—信息收集
  19. java 命令: jmap 命令使用 ( 查看内存使用、设置 )
  20. 《华为十年》转载了10年~ 离职副总裁给任正非的辞职信 ~ 朴实感动无数职场人

热门文章

  1. 二十一天学通C++之异常概述
  2. 二十天一学通C#:.NET中文件和文件夹的类
  3. 在Windows下正确安装Scipy与Numpy
  4. NASNET-【论文理解】
  5. vnc 序列号在哪输入_VNC Viewer Plus 1.2.3 注册机
  6. java jquery用的多吗_[Java教程]如果不用jQuery,Ajax你还能写出多少?
  7. 力扣-897 递增顺序搜索树
  8. 力扣-72 编辑距离
  9. 蓝桥杯2016年第七届C/C++省赛B组第二题-生日蜡烛
  10. Android Service(二)Service的两种启动方式