LVS的持久连接及应用的实例

LVS持久连接的意义:

在固定时间内将来自于同一个客户端发往VIP的所有请求统统定向至同一个RS;在指定时长内不再根据调度算法进行调度,会根据内存的ipvs的连接模版里的记录信息将同一个客户端的请求定向至同一个后端RS;

持久连接的类型:

1.PCC:持久客户端连接,将来自于同一个客户端发往VIP的所有请求统统定向至同一个RS (只是根据Vip,所有服务都是集群服务,不同的服务都会被定向至同一个RS);

2.PPC:持久端口连接,将来自于同一个客户端发往某VIP的某端口的所有请求统统定向至同一个RS中  (根据Vip和端口号,不同的服务不会再被定向至同一个RS);

3.PFMC:持久防火墙标记连接,基于防火墙标记,将两个或两个以上的端口绑定为同一个服务(应用场景是http服务和https服务需要定向至同一个RS);

在电商网站中提供http服务和https服务时如何将同一客户端的VIP请求定向至同一个RS中???

1.第一种解决方案: 使用PCC,但是这种方法有一个缺点就是会将同一个客户端请求的所有集群服务定向至同一个RS;

2.第二种解决方案: 使用PFMC,可以将两个集群服务绑定为同一个服务,对于两个不同端口的请求定向至同一后端RS;

1.PPC的演示(这里是基于LVS-DR模型架构的,关于其配置不再赘述)

#ipvsadm -A -t 192.168.10.120:80 -s rr -p 120            ####使用持久连接,指定两分钟

#ipvsadm -a -t 192.168.10.120:80 -r 192.168.10.11 -g

#ipvsadm -a -t 192.168.10.120:80 -r 192.168.10.12 -g

#ipvsadm -L -n

2.在宿主机上进行测试看是否定向至同一台RS上(如果是的话,证明配置正确)

3.在Xshell中使用ssh 192.168.10.120命令访问Director,用ifconfig命令查看会发现ip是Director本机ip不是Vip;当我们对Vip的ssh服务进行访问时,而这个服务又没有定义成集群服务则会由Director直接响应;

4.添加ssh集群服务

#ipvsadm -A -t 192.168.10.120:22 -s rr -p 1200

#ipvsadm -a -t 192.168.10.120:22 -r 192.168.10.11 -g

#ipvsadm -a -t 192.168.10.120:22 -r 192.168.10.12 -g

#ipvsadm -L -n

再次测试(Xshell)

ssh 192.168.10.120

#ifconfig                       ####再次查看会看到这时的ip是192.168.10.12  RS2 并且已经实现持久连接;在指定时长内断开再连接还是RS2;

2.PCC的演示(这里是基于LVS-DR模型架构的,关于其配置不再赘述)

#ipvsadm -C

#ipvsadm -A -t 192.168.10.120:0 -s rr -p 120            ####0 指的是添加所有的集群服务

#ipvsadm -a -t 192.168.10.120:0 -r 192.168.10.11 -g

#ipvsadm -a -t 192.168.10.120:0 -r 192.168.10.12 -g

#ipvsadm -L -n

测试(Xshell)

ssh 192.168.10.120

#ifconfig                       ####再次查看会看到这时的ip是192.168.10.12  RS2 并且已经实现持久连接;在指定时长内断开再连接还是RS2;

3.PFMC的演示(这里是基于LVS-DR模型架构的,关于其配置不再赘述)

1.在所有的RS上配置ssl

#yum -y install mod_ssl

2.把Director当成CA在其上面进行配置

#cd /etc/pki/CA

#vim ../tls/openssl.cnf

[ req_distinguished_name ]

countryName_default  =  CN

stateOrProvinceName_default  =  HB

localityName_default  =  WUHAN

0.organizationName_default  = COLLEGE

organizationalUnitName_default  =  Tech

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

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

#touch index.txt serial crlnumber

#echo 01 > serial

3.在RS上建立ssl目录

#mkdir /etc/httpd/ssl

#cd /etc/httpd/ssl

#(umask 077; openssl genrsa 2048 > httpd.key)

#openssl req -new -key httpd.key -out httpd.csr

#scp httpd.csr 192.168.10.120:/tmp

4.在Director上签署证书颁发请求

#openssl ca -in /tmp/httpd.csr -out /tmp/httpd/crt

#scp /tmp/httpd.crt 192.168.10.12:/etc/httpd/ssl/

5.将RS2中的证书文件和私钥文件复制到其他的后端RS上

#cd /etc/httpd/ssl

#mkdir /etc/httpd/ssl       ####在RS1上建立相应目录

#scp -p httpd.crt httpd.key 192.168.10.11:/etc/httpd/ssl/

#chmod 600 /etc/httpd/ssl/https.key

6.在各个RS上编辑ssl配置文件

#vim /etc/httpd/conf.d/ssl.conf

DocumentRoot  "/var/www/html"

ServerName www.luochen.com:443

SSLCertificateFile  /etc/httpd/ssl/httpd.crt

SSLCertificateKeyFile  /etc/httpd/ssl/httpd.key

7.将修改后的ssl配置文件复制到后端各个节点上

#scp /etc/httpd/conf.d/ssl.conf 192.168.10.12:/etc/httpd/conf.d/

8.在所有节点上重启web服务

#servicehttpd restart

9.查看443端口是否被监听

#netstat -tnulp | grep 443

10.定义ssl集群服务

#ipvsadm -A -t 192.168.10.120:443 -s rr

#ipvsadm -a  -t 192.168.10.120:443 -r 192.168.10.11 -g

#ipvsadm -a  -t 192.168.10.120:443 -r 192.168.10.12 -g

#ipvsadm -L -n

11.在宿主机上测试

12.在Director上定义PFMC

#ipvsadm -C

#ipvsadm -t mangle -A PREROUTING -d 192.168.10.120 -p tcp -dport 80 -j MARK --set-mark 10

#ipvsadm -t mangle -A PREROUTING -d 192.168.10.120 -p tcp -dport 443 -j MARK --set-mark 10

#service ipvsadm save

#ipvsadm -A -f 10 -s rr

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

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

#ipvsadm -L -n

#service ipvsadm save

13.在宿主机上进行测试

14.修改集群服务,使用持久连接

#ipvsadm -E -f 10 -s rr -p 1200

#service ipvsadm save

15.最后再在宿主机上进行测试

PS:MARK的值是在0--99之间的任意一个整数值。。。。

时间: 2024-10-24 06:35:06

LVS的持久连接及应用的实例的相关文章

实现LVS的持久连接以及健康状态监控功能

一.实现LVS的持久连接. 功能:无论ipvs使用何种scheduler,其都能够实现在指定时间范围内始终将来自同一个ip地址的请求发往同一个RS:此功能是通过lvs持久连接模板实现,其与调度方法无关. ①在LVS上设置一个虚拟网卡别名. ②在VIP上用iptables 打上标记,把80和443端口标记为99.  ③设置LVS的虚拟IP(VIP)和真实IP(DIP). ④测试.  [持久连接默认十分钟] 二.实现LVS健康状态监控功能. 实现监控状态监控基于持久连接的基础上进行试验. ①安装包

LVS(五)LVS的持久连接

什么是持久链接 把某个客户端的请求始终定向到同一应用服务器上.对于LVS来说持久连接和算法没有关系.也就是使用任何算法LVS都可以实现同一客户端的请求转发到之前选定的应用服务器,以保持会话.而且还能实现同一客户端的不同请求都可以定向到同一应用服务器,比如集群中2台应用服务器,每个应用服务器都提供WEB服务和TELNET服务,那么只要客户端一样,即使它两次请求不同服务,也可以定向到同一应用服务器上. 所以LVS支持2中模式 PPC:持续端口连接,将来自同一客户端对同一服务定向到同一应用服务器上 P

LVS的持久连接和awk/sed/grep的学习笔记

一.LVS持久连接的模式 1.PPC(persistent port connection) ipvsadm -A|E 192.168.10.1:80 -p 600 定义VIP为192.168.10.1director的80端口为持久连接,也就是只把web服务加入集群服务,可以通过改变端口实现不同服务的持久连接且把不同服务加入集群服务 2.PCC(persistent client connection) ipvsadm -A|E 192.168.10.1:0 -p 600 定义VIP为192.

LVS的持久连接、会话保持和高可用介绍

持续连接 1)持久连接(lvs persistence)模板: 实现无论使用任何调度算法,在一段时间内(默认360s),能够实现将来自同一个地址的请求始终发往同一个RS ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] -p # :定义持久时长 2)持久连接实现方式: 每端口持久(PPC):每个端口对应定义为一个集群服务,每个集群服务单独调度,同一服务持久 每防火墙标记持久(PFWMC ):基于防火墙标记定义集群服

Linux集群系列之六——LVS持久连接

DR: arp_ignore = 1 arp_announce = 2 数组:变量阵列 array_name=("" "" "" ) declare -a A 把一个变量明确申明为数组 LVS的持久连接:   无论使用什么算法,LVS持久连接都能实现在一定时间内将来自同一个客户端请求派发到同一个RS. 持久连接模版(内存缓冲区): 每一个客户端 及分配给它的RS的映射关系: ipvsadm -L -c 显示当前的持久连接数 ipvsadm -A|

LVS负载均衡之session解决方案 持久连接

1. 持久连接是什么? 1.1 在LVS中,持久连接是为了用来保证当来自同一个用户的请求时能够定位到同一台服务器. 2. 为什么会用到持久连接? 2.1 cookie/session机制的简单说明: 在Web服务通信中,HTTP本身是无状态协议,不能标识用户来源,此时出现了一个问题,当用户在一个网站浏览了A网页并跳转到B网页,此时服务器就认为B网页是一个新的用户请求,你之前的登陆的信息就都丢失了,头疼.为了记录用户的会话信息,我们的开发者就在客户端/服务器端软件提供了cookie/session

LVS持久连接(PPC+PCC+PNMPP)

无论使用哪种算法,LVS的持久连接都实现在一定时间内,将来自同一客户端的多种请求派发至此前选定的real-server. 持久连接模板(内存缓冲区): 记录每一个客户端及分配给它的RS. 查看当前的持久连接: ipvsadm -L -persistent-conn ipvsadm -L -c 设置持久连接: ipvsadm -A|-E ... -p timeout 默认timeout为300S. 在基于SSL会话的连接中,最需要使用持久连接. PPC(持久端口连接):将来自于同一个客户端对同一个

【转】LVS负载均衡之session解决方案 持久连接

原文地址:http://minux.blog.51cto.com/8994862/1744761 1. 持久连接是什么? 1.1 在LVS中,持久连接是为了用来保证当来自同一个用户的请求时能够定位到同一台服务器. 2. 为什么会用到持久连接? 2.1 cookie/session机制的简单说明: 在Web服务通信中,HTTP本身是无状态协议,不能标识用户来源,此时出现了一个问题,当用户在一个网站浏览了A网页并跳转到B网页,此时服务器就认为B网页是一个新的用户请求,你之前的登陆的信息就都丢失了,头

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

一.简介 1.1. lvs的持久连接简介 先说说lvs的持久连接能干什么:无论你选择lvs的何种转发策略,如果你想确定来自某一个客户端的所有连接均返回到同一台Real Server,就需要LVS的持久连接了.经常用于SSL,建立一个SSL连接,需要交换SSL密钥,当启用持久性连接时,只需要做一次验证即可. 显然LVS持久连接的定义也就知道了:某一个周期(时间段)之内,来自于同一个用户的请求,都转向同一个RS. 1.2. 持久连接模板: 当使用LVS持久连接时,分发器使用一个连接跟踪(持久连接模板