项目实战2—LVS负载均衡

负载均衡集群企业级应用实战-LVS

实现基于LVS负载均衡集群的电商网站架构

随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法承载更多的用户访问,此时需要用负载均衡技术,对网站容量进行扩充,来解决承载的问题。scale out? scale up?

实现基于LVS负载均衡集群的电商网站架构

前景:随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法承载更多的用户访问,此时需要用负载均衡技术,对网站容量进行扩充,来解决承载的问题。scale out? scale up?

实验前准备:

1、ipvsadm

yum install ipvsadm -y #在LVS-server安装lvs管理软件

程序包:ipvsadm(LVS管理工具)

Unit File: ipvsadm.service

主程序:/usr/sbin/ipvsadm

规则保存工具:/usr/sbin/ipvsadm-save

规则重载工具:/usr/sbin/ipvsadm-restore

配置文件:/etc/sysconfig/ipvsadm-config

2、grep -i -C 10 "ipvs" /boot/config-VERSION-RELEASE.x86_64 查看内核是否支持IPVS

3、iptables -F && setenforing 清空防火墙策略,关闭selinux

实战一:LVS的NAT模式实现负载均衡

实战架构图:

1、环境准备:


机器名称


IP配置


服务角色


备注


lvs-server


VIP:172.17.1.6

DIP:192.168.30.106


负载均衡器


开启路由功能

(VIP桥接、DIP仅主机)


rs01


RIP:192.168.30.107


后端服务器


网关指向DIP(仅主机)


rs02


RIP:192.168.30.7


后端服务器


网关指向DIP(仅主机)

注意:确保rs 在一个网段,且只有一个网段

2、在directory 负载均衡器上

yum -y install ipvsadm

① 开启一个基于80端口的虚拟服务vip,调度方式为wrr

ipvsadm -A -t 172.17.1.6:80 -s wrr

② 配置web服务后端real server  为nat工作方式  权重为1

ipvsadm -a -t 172.17.1.6:80 -r 192.168.30.107:80 -m -w 1

ipvsadm -a -t 172.17.1.6:80 -r 192.168.30.7:80 -m -w 1

③ 修改内核配置,开启路由转发

vim /etc/sysctl.conf 该一行

net.ipv4.ip_forward = 1

sysctl -p 读一些,使其生效

3、在两台real server 上设置

① 开启实现准备好的web网页服务

systemctl start nginx

systemctl start php-mysql

systemctl start mariadb

② 把网关指向directory

route add default gw 192.168.30.106

4、自己的windows 做客户端,通过vip 172.17.1.6访问web服务,调度成功

实战二:LVS的DR 模式实现负载均衡

实战架构图:

1、环境准备


机器名称


IP配置


服务角色


lvs-server


VIP:172.17.100.100


负载均衡器


rs01


RIP:172.17.1.7


后端服务器


rs02


RIP:172.17.22.22


后端服务器

注意:lvs-server 和rs 要在一个网段,rs只有一个网段

2、在lvs-server 上设置

① 配置VIP到本地网卡别名,广播只自己响应

ifconfig eth0:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

route add -host 172.17.100.100 dev eth0:0 给网卡别名指向网关

② ipvsadm 策略配置

开启一个基于80端口的虚拟服务,调度方式为wrr

ipvsadm -A -t 172.17.100.100:80 -s wrr

配置web服务后端real server  为DR工作方式  权重为1

ipvsadm -a -t 172.17.100.100:80 -r 172.17.22.22:80 -g -w 1

ipvsadm -a -t 172.17.100.100:80 -r 172.17.1.6:80 -g -w 1

3、real server 上配置

配置VIP到本地回环网卡lo上,并只广播自己

ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

配置本地回环网卡路由

route add -host 172.17.100.100 lo:0

② 使RS "闭嘴"

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略ARP广播

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注意:关闭arp应答

1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应

2:必须避免将接口信息向非本网络进行通告

③ 想永久生效,可以写到配置文件中

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

sysctl -p 读一下,使其生效

4、开启实现准备好的web网页服务

systemctl start nginx

systemctl start php-mysql

systemctl start mariadb

5、效果验证

① 可分别在rs1和rs2建立2个不同内容,统一路径的test.html测试文件,测试负载均衡功能

在RS01 上vim ../test.html

real server 1

在RS01 上vim ../test.html

real server 1

② 打开http://172.17.1.6/ ,并在director上用ipvsadm -L -n观察访问连接

③ 用另外一台测试机,用ab压力测试工具,测试经过负载均衡后的服务器容量

实战三:实现80、443端口都可访问服务,且LVS实现持久连接

1、环境准备


机器名称


IP配置


服务角色


lvs-server


VIP:172.17.100.100


负载均衡器


rs01


RIP:172.17.1.7


后端服务器


rs02


RIP:172.17.22.22


后端服务器

2、在vs 上设置:

① 在iptables 打上标记,把80端口标记为99

iptables -t mangle -A PREROUTING -d 172.17.100.100 -p tcp --dport 80 -j MARK --set-mark 99

在iptables打上标记,把443端口标记为99

iptables -t mangle -A PREROUTING -d 172.17.100.100-p tcp --dport 443 -j MARK --set-mark 99

② 在lvs上建立基于99号标记的虚拟服务

ipvsadm -A -f 99 -s rr -p

设置后端服务地址,用DR模式

ipvsadm -a -f 99 -r 172.17.1.7 -g

ipvsadm -a -f 99 -r 172.17.22.22 -g

解析:-p 就是持久连接

3、在rs 准备好了的web服务,开启80、443端口

关于ssl 443加密的代码,具体实现下实验四

4、测试,自己windows 做客户端,访问 http://172.17.1.6/

访问 http://172.17.1.6/

实验四:实现ssl 加密

(1)一个物理服务器设置一个https

1、创建存放证书的目录

mkdir /etc/nginx/ssl

2、自签名证书

cd /etc/pki/tls/certs/

make nginx.crt

openssl rsa -in nginx.key -out nginx2.key 因为刚私钥被加密了,为了后边方便,解密

3、把证书和私钥cp 到nginx存放证书目录

cp nginx.crt nginx2.key /etc/nginx/ssl/

cd /etc/nginx/ssl/

mv nginx2.key nginx.key 把名字改回来

4、修改配置文件,加一段server

server {

listen 443 ssl;

server_name www.along.com;

ssl on;

ssl_certificate /etc/nginx/ssl/nginx.crt;

ssl_certificate_key /etc/nginx/ssl/nginx.key;

ssl_session_cache shared:sslcache:20m;

ssl_session_timeout 10m;

}

5、测试,网页打开 https://192.168.30.7/

windows 信任证书

(2)因为nginx 强大,可以实现多个虚拟主机基于不同的FQDN 实现ssl加密,httpd不能实现

一个物理服务器设置多个https

1、生成3个证书和私钥

make nginx.crt

make nginx2.crt

make nginx3.crt

2、把证书和私钥cp 到nginx存放证书目录,并解开私钥的加密

cp nginx{1,2,3}* /etc/nginx/ssl/

openssl rsa -in nginx.key -out nginx.key

openssl rsa -in nginx2.key -out nginx2.key

openssl rsa -in nginx3.key -out nginx3.key

3、创建各自对应的访问网页

mkdir /app/website{1,2,3}

echo website1 > /app/website1/index.html

echo website1 > /app/website2/index.html

echo website1 > /app/website3/index.html

4、测试访问,成功

时间: 2024-08-30 05:25:06

项目实战2—LVS负载均衡的相关文章

大数据高并发系统架构实战方案(LVS负载均衡、Nginx、共享存储、海量数据、队列缓存)

课程简介: 随着互联网的发展,高并发.大数据量的网站要求越来越高.而这些高要求都是基础的技术和细节组合而成的.本课程就从实际案例出发给大家原景重现高并发架构常用技术点及详细演练. 通过该课程的学习,普通的技术人员就可以快速搭建起千万级的高并发大数据网站平台. 亮点一:真实环境还原,课程采用了VM环境重现大网站集群服务器环境,真实环境还原再现. 亮点二:基础实用,细节决定成败,课程内容在演练过程中重点介绍各种细节,保证初级人员快速入门及高级进阶. 亮点三:讲师丰富的海量平台运作经验 讲师tom5多

网站集群架构实战(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken>下面是项目的一些简单介绍. WEB集群项目简介 随着网站访问量的激增,势必会导致网站的负载增加,现需求搭载一套高性能,高负载,高可用的网站集群架构以保障网站的持续.高效.安全.稳定的运行. 针对以上需求,我们采用了如下的技术: 使用负载均衡技术来实现网站请求的调度分发,减小后端服务器

企业实战-实现基于LVS负载均衡集群的电商网站架构

实现LVS-DR工作模式: 环境准备:一台centos系统做DR.两台实现过基于LNMP的电子商务网站 机器名称 IP配置 服务角色 备注 lvs-server VIP:172.17.252.110 DIP:172.17.250.223 负载均衡器 开启路由功能 (VIP桥接) rs01 RIP:172.17.251.245 后端服务器 网关指向DIP(桥接) rs02 RIP:172.17.252.87 后端服务器 网关指向DIP(桥接) 实验步骤: 一.安装: 1.yum install i

构建高可用的LVS负载均衡集群 入门篇

一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能. LVS 集群采用IP负载和基于内容请求分

Window 2008 IIS配置LVS负载均衡一

      LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.承载于 IIS 的 WCF 服务的项目采用LVS + KEEPALIVED + WINDOWS SERVER 2008 R2 的方式实现高可用负载均衡. 1.设置 Windows Loopback Adapter 以上就是配置好了我们的lvs 网卡. 2.修改客户端网卡接口.环回接口连接模式 以管理

LVS负载均衡DR工作流程

LVS负载均衡DR工作流程 (a) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链. 此时报文的源IP为CIP,目标IP为VIP (b) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链 (c) IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链. 此时的源IP和目的IP均未修改,仅

LVS负载均衡集群架构介绍

为什么需要使用负载均衡呢?这是一个必较重要的问题 实际生产环境中某单台服务器已不能负载日常用访问压力时,就需要使用负载均衡,把用户的请求数据分担到(尽可能平均分配)后端所有功能同等的集群的节点上,同样也是为了解决单台服务器故障问题,从而提高用户的访问体验. 1.LVS的介绍 LVS(linux virtual server)LINUX虚拟服务器,是一个虚拟的服务器集群系统,可以在linux和unix系统中运行,1985年开发研究的项目 http://www.linuxvirtualserver.

LVS负载均衡简单配置

LVS的安装与使用 第1章 LVS原理及介绍 1.1 LVS简介 LVS是Linux Virtual Server的简写,意思就是Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能.该项目在1998年5月由章文嵩博士组织成立,是中国国内最早出现的自由软件项目之一. LVS项目介绍: LVS项目主页:http://www.linuxvirtualserver.org/ LVS项目介绍:http://www.linuxvirtualserver.o

使用LVS负载均衡搭建web群集的原理及安装配置详解

一.负载均衡LVS基本介绍 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器.这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtualserver.org. LVS是Linux内核标准的一部分.LVS是一个实现负载均衡集群的开源软件项目,通过 LVS 的负载均衡技术和 Linux操作系统可以实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性.可扩展性和可操作性.LVS架构从逻辑上可分为调度层.Se