码迷,mamicode.com
首页 > 其他好文 > 详细

lvs持久连接

时间:2016-10-16 19:19:55      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

 

在我们实现lvs负载均衡的同时是否想过这样的一个问题:当客户访问一台WEB服务器时,如果每次客户刷新页面后多会更变连接的realserver,那么这样客户是会非常苦恼的,因为客户一刷新前面的数据和保留的session信息就 找不到了。

对于这样的问题我们该怎么解决呢?

其实解决的这个问题是有很多方法的,下面我就来介绍关于lvs提出的解决方案吧--------------基于lvs持久连接。

lvs持久连接的三种模型:

1、PCC 将某个客户的所用访问请求在超时时间内都定向到同一台server上 基于客户端的持久连接
2、PPC 将某个客户的某个服务访问请求在超时时间内都定向到同一台server上 基于会话的端口持久连接
3、Netfilter Mark 基于防火墙标志的持久连接(将多个服务端口绑定到一起,定义有限个服务为集群服务)


PCC:

[root@super63 ~]# ipvsadm -C
[root@super63 ~]# ipvsadm -At 192.168.1.63:0 -s rr -p 500
[root@super63 ~]# ipvsadm -at 192.168.1.63:0 -r 192.168.1.65 -g
[root@super63 ~]# ipvsadm -at 192.168.1.63:0 -r 192.168.1.66 -g
[root@super63 ~]# ipvsadm -L -n 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.63:80 rr persistent 500
  -> 192.168.1.65:80              Route   1      0          0         
  -> 192.168.1.66:80              Route   1      0          0   

在super64上访问vip:
[root@super64 ~]# elinks 192.168.1.63 -dump
   192.168.1.66
[root@super64 ~]# ssh 192.168.1.63
[root@super66 ~]

再次在super63上查看:

[root@super63 ~]# ipvsadm -L -n 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.63:80 rr persistent 500
  -> 192.168.1.65:80              Route   1      0          0         
  -> 192.168.1.66:80              Route   1      0          2

连接一直定位到66


PPC:

[root@super63 ~]# ipvsadm -C
[root@super63 ~]# ipvsadm -At 192.168.1.63:22 -s rr -p
[root@super63 ~]# ipvsadm -At 192.168.1.63:80 -s rr -p
[root@super63 ~]# ipvsadm -at 192.168.1.63:80 -r 192.168.1.65 -g
[root@super63 ~]# ipvsadm -at 192.168.1.63:80 -r 192.168.1.66 -g
[root@super63 ~]# ipvsadm -at 192.168.1.63:20 -r 192.168.1.65 -g


[root@super64 ~]# elinks 192.168.1.63 -dump
2次访问多定位到66
[root@super64 ~]# ssh 192.168.1.63
root@192.168.1.63‘s password: 
Last login: Wed Aug  5 10:09:47 2015 from 192.168.1.64
[root@super65 ~]# 
2次访问多定位到65

[root@super63 ~]# ipvsadm -nL
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.63:22 rr persistent 360
  -> 192.168.1.65:22              Route   1      0          2        
TCP  192.168.1.63:80 rr persistent 360
  -> 192.168.1.65:80              Route   1      0          0         
  -> 192.168.1.66:80              Route   1      0          2 


基于防火墙标记:

[root@super63 ~]#ipvsadm -C

将端口打上标记
[root@super63 ~]#iptables -t mangle -A PREROUTING -d 192.168.1.63 -i eth0 -p tcp -m multiport --dport 80,443 -j MARK --set-mark 8

创建规则(把防火墙的8定义为集群服务)
[root@super63 ~]#ipvsadm -A -f 8 -s rr -p --f 
[root@super63 ~]#ipvsadm -a -f 8 -r 192.168.1.65 -g
[root@super63 ~]#ipvsadm -a -f 8 -r 192.168.1.66 -g

通过64分别访问vip的https与http服务:
2次访问的结果定位到同一主机。

[root@super63 ~]# ipvsadm -nL
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
FWM  8 rr persistent 360
  -> 192.168.1.65:0               Route   1      0          2        
  -> 192.168.1.66:0               Route   1      0          0  

lvs持久连接

标签:

原文地址:http://www.cnblogs.com/fanxuanhui/p/5967036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!