lvs持久连接

尽管我们选择了LVS的分发方法,但是大多时候我们要保证返回给客户端的所有响应请求必须来自于同一台Real Server,这里我们就要用到LVS Persistence(持久性)。例如,当客户在电子商务网站上挑选商品时,所挑选的购物车被定向到R1上,当第二件商品的时候被定向到R2上,这个时候由于R1和R2会话信息没有同步,还有就是当客户在进行付账的时候,80端口的http服务会跳转到443端口的https服务。如何保持这一会话的持久连接呢?
当使用SSL会话的时候,我们常常期望只交换一次密钥就可以建立永久连接,因此,LVS持久性在SSL会话中经常被用到。

LVS为了实现持久性,Directory会在内部维护一个连接追踪记录(源IP、RS IP,计时器),每一个请求进来的时候,被分给那一个RS,每一个请求会有一个条目,而且连接过去的时间都会有记录,并且有一定的时间的持久性。如果计时器倒计时为0的时候,用户没有退出,则自动的延时2min,直到其断开。

用hash方式存储

ipvsadm -p 使用持久连续 后跟秒

持久连接类型:
1持久客户端连接:无论客户端请求任何的服务统统定义到一台Real Server上,把端口号定义为0
[root@mail ~]# ipvsadm -A -t 172.16.26.1:0 -p 30
[root@mail ~]# ipvsadm -a -t 172.16.26.1:0 -r 172.16.26.20 -g -w 5
[root@mail ~]# ipvsadm -a -t 172.16.26.1:0 -r 172.16.26.30 -g -w 20

 


2持久端口连接(persistent port connections)仅将来自于客户端的一种特定请求转发至某一个Real Server上

[root@mail ~]# ipvsadm -A -t 172.16.26.1:80 -s rr -p 30
[root@mail ~]# ipvsadm -a -t 172.16.26.1:80 -r 172.16.26.20 -g
[root@mail ~]# ipvsadm -a -t 172.16.26.1:80 -r 172.16.26.30 -g
[root@mail ~]# ipvsadm -A -t 172.16.26.1:23 -s rr -p 30
[root@mail ~]# ipvsadm -a -t 172.16.26.1:23 -r 172.16.26.20 -g
[root@mail ~]# ipvsadm -a -t 172.16.26.1:23 -r 172.16.26.30 -g

 

[root@mail nginx]# ipvsadm -A -t 172.16.26.1:443 -s rr
[root@mail nginx]# ipvsadm -a -t 172.16.26.1:443 -r 172.16.26.20 -g
[root@mail nginx]# ipvsadm -a -t 172.16.26.1:443 -r 172.16.26.30 -g

 

 


3持久防火墙标记数据包持久性()

创建证书:
cd /etc/pki/tls
vim openssl.cnf 修改证书路径 及一些证书选项

cd /etc/pki/CA

(umask 077; openssl genrsa 1024 > private/cakey.pem)

openssl req -new -x509 -key private/cakey.pem -out cacert.pem

mkdir newcerts certs crl
touch index.txt
echo 01 > serial
echo 01 > crlnumber

cd /etc/nginx
make ssl
cd ssl/
(umask 077; openssl genrsa 1024 > nginx.key)
openssl req -new -key nginx.key -out nginx.csr
openssl ca -in nginx.csr -out nginx.crt

vim nginx.conf
启用证书 并指定路径

iptables -t mangle -A PREROUTING -p tcp -d 172.16.26.1 --dport 80 -j MARK --set-mark 20
[root@mail nginx]# iptables -t mangle -F
[root@mail nginx]# iptables -t mangle -A PREROUTING -i eth0 -p tcp -d 172.16.26.1 --dport 80 -j MARK --set-mark 20
[root@mail nginx]# iptables -t mangle -A PREROUTING -i eth0 -p tcp -d 172.16.26.1 --dport 443 -j MARK --set-mark 20

[root@mail nginx]# ipvsadm -A -f 20 -s wlc -p 600
[root@mail nginx]# ipvsadm -a -f 20 -r 172.16.26.20 -g -w 3
[root@mail nginx]# ipvsadm -a -f 20 -r 172.16.26.30 -g -w 2
 

你可能感兴趣的:(如何,计时器,定向,的,持久性)