lvs使用进阶
之前lvs基础篇(https://www.cnblogs.com/ckh2014/p/10855002.html)中介绍了lvs-dr的搭建,下面我们再复习一下,架构如下:

相关配置
director:
# ip addr add 192.168.1.111/32 dev/eth0
RS:
写一个脚本:vim setka.sh
#!/bin/bash
#
vip=192.168.1.111
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce ifconfig lo:0 $vip netmask 255.255.255.255 broadcast $vip
;;
stop)
ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/eth0/arp_announce
;;
esac director写ipvsadm管理命令:
# ipvsadm -A -t 192.168.1.111:80 -s rr
# ipvsadm -a -t 192.168.1.111:80 -r 192.168.1.102 -g
# ipvsadm -a -t 192.168.1.111:80 -r 192.168.1.103 -g 测试:浏览器访问http://192.168.1.111
那我们如何开放两个端口的服务都做集群调度呢
比如我们再添加ssh服务进行调度
清空上面写的ipvsadm管理命令
# ipvsadm -C
添加80端口web服务集群:
# iptables -t mangle -A PREROUTING -d 192.168.1.111 -p tcp -dport 80 -j MARK --set-mark 10
# ipvsadm -A -f 10 -s rr
# ipvsadm -a -f 10 -r 192.168.1.192 -g
# ipvsadm -a -f 10 -r 192.168.1.103 -g
添加ssh服务到集群:
# iptables -t mangle -A PREROUTING -d 192.168.1.111 -p tcp -dport 22 -j MARK --set-mark 10
再添加一个ssl也受集群管理:
首先我们创建私有CA,给Real Server发证书,这里就简单介绍下创建证书的过程了,之前openssl博客已经写得很详细了,不了解的可以去参考(https://www.cnblogs.com/ckh2014/p/10772175.html):
CA自签证书:
# cd /etc/pki/CA
# touch index.txt
# echo 01 > serial
# (umask 077;openssl genrsa -out private/cakey.pem 2048)
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300
RS生成证书请求:
# cd /etc/httpd
# mkdir ssl
# yum install mod_ssl
#(umask 077;openssl genrsa -out ssl/httpd.key 1024)
# openssl req -new -key ssl/httpd.key -out ssl/httpd.csr -days 365
传给ca签证:
# scp ssl/httpd.csr root@192.168.1.101:/tmp
CA签证:
# openssl ca -in /tmp/httpd.csr -out certs/httpd.crt -days 365
证书传给RS:
# scp certs/httpd.crt 192.168.1.102:/etc/httpd/ssl
RS修改ssl配置文件:
# vim /etc/httpd/conf.d/ssl.conf
具体配置就不详细描述了
证书都发完后,写ipvsadm进行管理:
# ipvsadm -A -t 192.168.1.111:443 -s rr
# ipvsadm -a -t 192.168.1.111:443 -r 192.168.1.102 -g
# ipvsadm -a -t 192.168.1.111:443 -r 192.168.1.103 -g
测试: 浏览器访问https://192.168.1.111
或者iptables规则中打标:
# iptables -t mangle -A PREROUTING -d 192.168.1.111 -p tcp -dport 443 -j MARK --set-mark 10
# ipvsadm -A -f 10 -s rr
# ipvsadm -a -f 10 -r 192.168.1.192 -g
# ipvsadm -a -f 10 -r 192.168.1.103 -g
测试:浏览器访问https://192.168.1.111
总结:
通过FWM定义集群的方式:
(1)在director上netfilter的mangle表的PREROUTNG定义用于”打标“的规则
# iptables -t mangle -A PREROUTING -d $vip -p $protocol --dports $port -j MARK --set-mark #
$vip: VIP地址
$protocol:协议
$port: 协议端口
(2)基于FWM定义集群服务
# ipvsadm -A -f # -s scheduler
# ipvsadm -a -f # $RS_IP $context
$context:上下文,有-m(masquerade,nat),-g(gateway,dr), -i(ipip,tun) 功用:将共享一组RS的集群服务统一进行调度;
session保持:
session绑定
session复制
session服务器 session绑定:lvs sh算法
对某一特定服务;
lvs persistence: lvs的持久连接
功能:无论ipvs使用何种调度方法,其都能实现将来自于同一个Client的请求始终定向至第一次调度时挑选出的RS;
持久连接模板:独立于算法
sourceip rs timer
对多个共享同一组RS的服务器,需要统一进行绑定?
持久连接的实现方式:
每端口持久: PPC,单服务持久调度
每FWM持久: PFWMC,单FWM持久调度
PORT AFFINITY
每客户端持久: PCC,单客户端持久调度
director会将用户的任何请求都识别为集群服务,并向RS进行调度:
TCP:1-65535
UDP:1-65535
# ipvsadm -A -t 192.168.1.101:0 -s rr -p // 端口0表示所有的服务
HA:
SPOF: Single Point Of Failure
director: 高可用集群
realserver: 让director对其做健康状态监测,并且根据监测的结果自动完成添加或移除等管理功能 . 基于协议层次
ip: icmp
传输层:检测端口的开放状态
应用层:请求获取关键性的资源
2. 检查频度 3. 状态判断
下线: ok --> failure --> failure --> failure
上线: failure --> ok --> ok 4. back server,sorry server
lvs使用进阶的更多相关文章
- 6、lvs使用进阶(02)
把web server服务和443服务绑定在一起之后呢? 假设一种场景,对web服务器来讲需要session保持.一个在线购物网站,在购物时,如果不结账,一般是http协议,当结账时,需要网站跳转,可 ...
- 5、lvs使用进阶(01)
四层.七层负载均衡的区别 https://jaminzhang.github.io/lb/L4-L7-Load-Balancer-Difference/ netfilter/iptables简介 ...
- lvs 进阶 第二章
linux virtual server 一 . lvs lvs 对数据进行四层转发,根据目标地址和目标端口对请求数据进行转发. lvs 包含ipvsadm 和ipvs: ipvsadm :用户空间的 ...
- 架构设计:负载均衡层设计方案(3)——Nginx进阶
版权声明:欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) 目录(?)[-] Nginx继续进阶 1gzip ...
- LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
- 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置
1.概述 上篇文章<架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层>(http://blog.csdn.net/yinwenjie/artic ...
- 架构设计:负载均衡层设计方案(4)——LVS原理
之前我们花了两篇文章的篇幅,详细讲解了Nginx的原理.安装和特性组件.请参看<负载均衡层设计方案(2)——Nginx安装>(http://blog.csdn.net/yinwenjie/ ...
- Apache+lvs高可用+keepalive(主从+双主模型)
Apache+lvs高可用+keepalive(主从+双主模型) keepalive实验准备环境: httpd-2.2.15-39.el6.centos.x86_64 keepalived-1 ...
- 大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)
课程简介: 随着互联网的发展,高并发.大数据量的网站要求越来越高.而这些高要求都是基础的技术和细节组合而成的.本课程就从实际案例出发给大家原景重现高并发架构常用技术点及详细演练. 通过该课程的学习,普 ...
随机推荐
- OOP(面向对象编程)
原文链接:https://blog.csdn.net/qq_38526635/article/details/81319127OOP编程思想OOP核心思想:封装,继承,多态. 理解: 对象是由数据和容 ...
- SpringBoot2.x操作缓存的新姿势
一.介绍 spring cache 是spring3版本之后引入的一项技术,可以简化对于缓存层的操作,spring cache与springcloud stream类似,都是基于抽象层,可以任意切换其 ...
- centos7 上为php-fpm安装gd扩展库
转自:https://blog.csdn.net/liyyzz33/article/details/89166110 首先查看自己当前php的版本 php -v PHP 5.6.40 查看yum中是否 ...
- PHP+mysql数据库简单分页实例-sql分页
前几天冷月写了一篇博文<php基础编程-php连接mysql数据库-mysqli的简单使用>,很多小伙伴在学习后都知道了php与mysql数据库的连接,今天冷月分享一个简单的分页实例 首先 ...
- RTEMS进程同步机制
互斥量 好像没有互斥量,信号量接收那儿有个图,互斥量似乎术语一类特殊的信号量. 信号量 12. Semaphore Manager 12.1. Introduction The semaphore m ...
- JS从键盘输入当月利润,求应发放奖金总数
题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%:20万到4 ...
- 实用,Windows后台守护进程iNeuDaemon发布。Linux操作系统下使用使用supervisor
目 录 1. 概述... 1 2. iNeuDaemon部署... 2 3. iNeuDaemon配置监控服务项... 3 4. 应用效果... 3 ...
- 初识matlab
1 matlab概貌 MATLAB是MATrix LABoratory(矩阵实验室)的缩写,是一款由美国The MathWorks公司出品的商业数学软件.matlab是一种用于算法开发.数据可视化.数 ...
- Cesium案例解析(四)——3DModels模型加载
目录 1. 概述 2. 代码 3. 解析 4. 参考 1. 概述 Cesium自带的3D Models示例,展示了如何加载glTF格式三维模型数据.glTF是为WebGL量身定制的数据格式,在网络环境 ...
- openlayers6结合geoserver利用WFS服务实现图层新增功能(附源码下载)
内容概览 1.openlayers6结合geoserver利用WFS服务实现图层新增功能2.源代码demo下载 效果图如下: 本篇主要是openlayers6通过调用geoserver发布的地图服务W ...