一、简介

1.1. lvs的持久连接简介

先说说lvs的持久连接能干什么:无论你选择lvs的何种转发策略,如果你想确定来自某一个客户端的所有连接均返回到同一台Real Server,就需要LVS的持久连接了。经常用于SSL,建立一个SSL连接,需要交换SSL密钥,当启用持久性连接时,只需要做一次验证即可。

显然LVS持久连接的定义也就知道了:某一个周期(时间段)之内,来自于同一个用户的请求,都转向同一个RS。

1.2. 持久连接模板:

当使用LVS持久连接时,分发器使用一个连接跟踪(持久连接模板)使所有来自同一客户端的连接被标记为相同的real server;而当客户端向集群服务器请求连接时,分发器(director)会查看持久连接模板,是否real server已经被标记为这种类型的连接,若没有,director重新为每次连接创建一个正常连接的跟踪记录表(持久连接模板)。

1.3. 持久连接超时:

我们可以在director使用ipvsadm为持久连接模板规定一个具体的时间段,如果记数器归零,而且是激活状态(客户端一直在和real server通信),不管你设置的持久连接时长是多少,记录器将会重置一个默认值2分钟,并开始计数,下降为零后,再开始再一下重置。

1.4. 持久连接类型:

PCC(persistent client connections):持久的客户端连接,也叫做零端口的持久连接;

#ipvsadm -A 192.168.0.10:0 -s rr -p [6000](只需将VIP的端口设为0接口表示所有端口都持久)

PPC(persistent port connections):持久的端口连接;

一个持久端口连接到同一个real server强制所有从客户端计算机的连接为一个特定的目的端口号

# ipvsadm -A 192.168.0.10:80 -s rr -p [6000]

PNMPP(Persistent Netfilter Marked Packet persistence):基于防火墙标记的持久性连接;

这种防火墙标记仅在数据包在分发器上时有影响,数据包一旦离开director,就不再被标记。

把多个目标端口标记为同一个标记mark(1~99),持久后保证可以cookie、session可用。

# ipvsadm -A -f mark -s rr -p [600]

# ipvsadm -a -f mark -r 192.168.10.12 -g

# ipvsadm -a -f mark -r 192.168.10.13 -g

案例示意拓扑:

二、手动配制示例


 2.1. 实验环境:


案例1. 持久的端口连接ppc


director配置:

ipvsadm  -A -t 192.168.2.254:0 -s rr -p

ipvsadm  -a -t 192.168.2.254:0 -t 192.168.2.10 -g  //-g:使用网关直接路由

ipvsadm  -a -t 192.168.2.254:0 -t 192.168.2.10 -g

service ipvsadm save    //保存配置

service ipvsadm start   //启动服务

server1与server2同:

[root@smb html]# echo 1 >  /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@smb html]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@smb html]# echo 1 >  /proc/sys/net/ipv4/conf/all/arp_ignore

[root@smb html]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

# ifconfig lo:0 192.168.2.254 netmask 255.255.255.255  配置回环接口

# route add -host 192.168.2.254 dev lo:0        添加默认路由

案例2:持久的客户端连接ppc


#ipvsadm -C                 //清除ipvsadm规则表

#ipvsadm -At 192.168.2.254:80 -s rr -p 1800  //80端口

# ipvsadm -at 192.168.2.254:80 -r 192.168.2.20 -g

# ipvsadm -At 192.168.2.254:3306 -s rr -p 1800

# ipvsadm -at 192.168.2.254:3306 -r 192.168.2.10 -g

# ipvsadm -At 192.168.2.254:22 -s rr -p      //22端口,使用默认时间300秒

# ipvsadm -at 192.168.2.254:22 -r 192.168.2.10 -g   //-g:使用网关直接路由

# ipvsadm -At 192.168.2.254:80 -s rr -p

# ipvsadm -at 192.168.2.254:80 -r 192.168.2.20 -g

#service ipvsadm save    //保存配置

#service ipvsadm start    //启动服务

可通过ipvsadm -Ln来查看策略匹配情况,

案例3: ftp持久连接,防火墙标记


#ipvsadm -C     //清除ipvsadm规则表

#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 21 -j MARK --set-mark 10

#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 10000:20000 -j MARK --set-mark 10

#ipvsadm -A -f 10 -s rr -p 1800

#ipvsadm -a -f 10 -r 192.168.2.10 -g  //-g:使用网关直接路由

#ipvsadm -a -f 10 -r 192.168.2.20 -g

#service ipvsadm save    //保存配置

#service ipvsadm start    //启动服务

案例4:http与https


#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 80 -j MARK --set-mark 80

#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 443 -j MARK --set-mark 80

#ipvsadm -C

# ipvsadm -A -f 80 -s rr -p 300     //修改时间为300秒

# ipvsadm -a -f 80 -r 192.168.2.10 -g  //-g:使用网关直接路由

# ipvsadm -a -f 80 -r 192.168.2.20 -g

#service ipvsadm save                //保存配置

#service ipvsadm start                //启动服务

对于ca的配置略,

案例5:

Real Server: 10.109.134.203 /10.109.134.204

[root@localhost ~]# chkconfig telnet on

[root@localhost ~]# service xinetd restart

Stopping xinetd:              [  OK  ]

Starting xinetd:              [  OK  ]

[root@localhost ~]# netstat -tnlp

...

tcp     0      0 :::80      :::*     LISTEN      7983/httpd

tcp     0      0 :::22      :::*     LISTEN      1501/sshd

tcp     0      0 :::23      :::*     LISTEN      8350/xinetd

...

[root@localhost ~]# useradd hadoop

[root@localhost ~]# passwd hadoop

DR:10.109.134.210

[root@localhost ~]# ipvsadm -A -t 10.109.134.210:23 -s rr

[root@localhost ~]# ipvsadm -a -t 10.109.134.210:23 -r 10.109.134.203 -g -w 2

[root@localhost ~]# ipvsadm -a -t 10.109.134.210:23 -r 10.109.134.204 -g -w 1

[root@localhost ~]# ipvsadm

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port      Forward Weight ActiveConn InActConn

TCP  10.109.134.210:http rr persistent 900

-> 10.109.134.204:http    Route   3   0     0

-> 10.109.134.203:http    Route   1   0     0

TCP  10.109.134.210:telnet rr persistent 3600

-> 10.109.134.204:telnet   Route   1   1     0

-> 10.109.134.203:telnet   Route   2   1     0

若要实现持久连接

[root@localhost ~]# ipvsadm -E -t 10.109.134.210:23 -s rr -p 3600

若要实现多服务的标记持久连接

ipvsadm -C

iptables -t mangle -A PREROUTING -d 10.109.134.210 -i eth0 -p tcp --dport 80 -j mark 6

iptables -t mangle -A PREROUTING -d 10.109.134.210 -i eth0 -p tcp --dport 23 -j mark 6

ipvsadm -A -f 6 -s rr -p 600

ipvsadm -a -f 6 -r 10.109.134.203 -g -w 2

ipvsadm -a -f 6 -r 10.109.134.204 -g -w 1


---end---

转载于:https://blog.51cto.com/wangfx/1959195

linux集群系列(4) --- LVS之负载均衡集群 --- 持久连接相关推荐

  1. Keepalived高可用集群来实现web服务器负载均衡集群

    Keepalived高可用集群来实现web服务器负载均衡集群 一.Keepalived的介绍 Keepalived是一个提供HA重要的底层工具,最早期的作用是为ipvs提供HA功能的,还是一个可以提供 ...

  2. 【LVS】负载均衡集群

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

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

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

  4. LVS四层负载均衡集群

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

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

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

  6. 运维工程师必备之负载均衡集群及LVS详解

    此博文主要介绍集群和负载均衡的基本理论和类别,内容看着比较枯燥.无味的,但是要想成为一个好的linux运维工程师,这些基本理论是必须理解透彻,才会在后来的系统调优和集群架构中得心应手,所以想成为lin ...

  7. LVS负载均衡集群——NAT

    目录 一.集群与分布式 1.1.集群的含义 1.2.lvs模型 1.3.系统性能扩展方式 1.4.集群的三种类型 1.5.LVS的负载调度算法 1.6.集群设计原则 1.7.负载均衡集群架构 ​二.L ...

  8. RabbitMQ:使用Docker构建RabbitMQ高可用负载均衡集群

    目录 一.构建RabbitMQ集群 1. 启动多个RabbitMQ节点 2. 加入集群 3. 配置镜像队列 二.HAProxy负载均衡 1. 安装HAProxy 2. 配置HAProxy 3. 启动 ...

  9. LVS+nginx负载均衡(一)-企业实战lvs负载均衡

    一.LVS简介 1.LVS简介 LVS是linux虚拟服务器,是一个虚拟的服务器集群:通过LVS的负载均衡技术和linux操作系统可以实现一个人高性能.高可用的Linux服务器集群,并具有良好的高可靠 ...

最新文章

  1. bootstrap 模态窗口 多重/多个弹窗滚动条补丁
  2. 设置VMWARE通过桥接方式使用主机无线网卡上网
  3. C 语言读写中文出现乱码
  4. Lintcode99 Reorder List solution 题解
  5. CRM WebClient UI里Sales area的保存原理
  6. SAP云平台的Document Service
  7. docker mysql忘记密码_docker 容器 mysql5.7 忘记root密码 重置密码
  8. LeetCode 288. 单词的唯一缩写(哈希)
  9. Ubuntu美化方案
  10. Maven常用命令-创建Web项目
  11. 关于html中的reset,submit中的按钮不能实现功能的原因
  12. 舵机控制 —— 一篇就够
  13. 中央气象台api接口
  14. [02/Dec/2019:12:59:10 +0800]之日期转换
  15. 知识管理在企业竞争发展中的作用
  16. java定时器每天执行一次_定时器-每天23:00执行一次
  17. 上海航芯|推出基于ACX200T的V2X解决方案
  18. 免安装版(解压缩版)MySQL安装
  19. 英飞凌TRAVEO II介绍
  20. 猪齿鱼(Choerodon UI )的通用提交的封装 —— 两种方案,A.使用dataSet的自身的submit,B.使用axios.post来提交

热门文章

  1. python多线程理解
  2. java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
  3. UIImagePickerController和UIAlertController结合使用
  4. [转]半角全角互转函数[JS版 VBS版]
  5. Windows Mobile系列手机操作系统
  6. c++ (QT)笔记
  7. Android数据存储之SQLite
  8. appsetting 和connectionString 的区别。
  9. TCP/IP通信程序设计方式
  10. influxdb tsm文件_Influxdb中的Compaction操作