【负载均衡】LVS负载均衡PCC、PPC持久连接与防火墙标记

TangLu 未命名 2016-04-29 5838 0

http是一种无状态的协议,这种无状态特性会导致客户端每次请求完毕后就会自动断开连接。假设以下两个情况:

1、有一个购物网站使用了LVS负载均衡,当这种无状态的特性出现在该站点时,会导致某用户添加了一个商品到购物车,这个时候被轮询到后端的Realserver1上,接着刷新页面,这次请求可能就会被轮询到了Realserver2上,这样购物车里的东西也没了。

2、用户添加了商品到购物车并进入支付阶段,但是出于安全性通常付费页面基于SSL,使用的是443端口,而之前的页面则是80端口。这个时候发生了端口的转换,请求会被重新发起,那么也就有可能被轮询到了其他服务器上。

上面两种情况都可以通过LVS持久连接来解决

LVS中开启持久连接的选项:

ipvsadm -p timeout   #-p 指定持久连接时长,默认为300秒

LVS持久连接有三种类型:

ppc (persistent port connections):持久的端口连接,同一个客户端对同一个服务的请求都定向到同一个RealServer

pcc (persistent client connections):持久的客户端连接,对同一个客户端的所有请求(比如第一次请求80端口,第二次是23端口)都定向到同一个RealServer

pnmpp(persistent netfilter marked packet persistence) :持久防火墙标记连接

示例1、ppc(基于端口的持久连接)

ipvsadm -A -t 192.168.100.10:80 -s rr -p 600

ipvsadm -a -t 192.168.100.10:80 -r 192.168.100.100 -g

ipvsadm -a -t 192.168.100.10:80 -r 192.168.100.110  -g

ipvsadm -L -n --persistent-conn  #查看持久连接情况

 

示例2、pcc(基于客户端的持久链接)

ipvsadm -C
ipvsadm -A -t 192.168.100.10:0 -s rr -p 600  #0端口代表所有服务
ipvsadm -a -t 192.168.100.10:0 -r 192.168.100.100 -g
ipvsadm -a -t 192.168.100.10:0 -r 192.168.100.110  -g

 

示例3、基于防火墙标记持久连接  

ipvsadm –C

iptables -F -t mangle

###iptables的设置

iptables -t mangle -A PREROUTING -d 192.168.100.10 -p tcp --dport 80 -j MARK --set-mark 10

iptables -t mangle -A PREROUTING -d 192.168.100.10 -p tcp --dport 443 -j MARK --set-mark 10

###ipvsadm的设置

ipvsadm -A -f 10 -s rr -p 3600

ipvsadm -a -f 10 -r 192.168.100.100 -g

ipvsadm -a -f 10 -r 192.168.100.110–g


 

评论