CDN之多边缘节点负载均衡--学习笔记

本文记录了一次多边缘节点负载均衡实验,包括LVS四层负载集群和Nginx七层负载集群的配置。实验中,Bind作为主负载均衡服务器调度两个集群,实现了四层和七层负载的结合。在LVS集群中,配置了DR模式,通过DNS解析将流量导向四层负载的VIP,而在七层负载中,Nginx作为反向代理,Bind负责域名解析。实验成功展示了如何将两个负载集群融合在一起,提供高效的内容分发服务。
摘要由CSDN通过智能技术生成

一.剧情

  剧情是这样的,本次的多边缘节点负载均衡实验,1个LVS四层负载均衡集群和1个Nginx为反向代理的七层负载均衡集群,由Bind dns解析作为 主负载均衡服务器,调度两个集群,中间层有一台Web服务器。前端是一台客户端。如下图所示:

          

 

二.基础环境

1.硬件信息

  4G内存、50G硬盘、2核

  8台虚拟机系统为Centos 6.5,1台client系统为 windows server 2008。

2.网络信息:

  IP地址按上图的标明。(其中每台机器的dns设置,可以在所有软件联网安装完成后,修改成环境中的192.168.40.105

3.系统内环境配置,所有linux系统内都安装了开发工具,并关闭每台机器的防火墙。主机名已更改为图上所示:

1 1 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo    (替换yum源为 阿里源)
2 (备用源,如果阿里源不能使用,请更换为网易源:http://mirrors.163.com/.help/CentOS6-Base-163.repo)
3 2 yum -y groupinstall "development tools"
4 3 service iptables stop

 

 

三.软件部署

  此次实验,我们可以分为两部分,先做通LVS+squid+web四层负载架构。再做Nginx+Bind+Squid+web七层负载。最后将两个集群结合在一起。

LVS四层负载均衡:

  1.安装LVS服务器

1 yum install ipvsadm

  2.由于我们采用DR的工作方式,DR工作方式要求真实服务器的IP地址和虚拟IP地址(VIP)必须属于同一网段。具体工作原理可参考LVS三种实现技术。这一步我们修改内核参数 /etc/sysctl.conf,在文件最后追加以下三句内容,

1 vim /etc/sysctl.conf
2 net.ipv4.ip_forwarf = 0          (此句,默认是为0)
3 net.ipv4.conf.all.send_redirects = 1
4 net.ipv4.conf.default.send_redirects = 1
5 net.ipv4.conf.eth0.send_redirects = 1

  修改完成后,立即生效:

1 sysctl -p

  3.配置LVS服务器的VIP即虚拟IP,后续的的两台squid也要配置这个虚拟IP。并增加路由记录

1 ifconfig eth0:0 192.168.40.128 netmask 255.25.255.255 broadcast 192.168.40.128 up
2 route add -host 192.168.40.128 dev eth0:0

  创建负载均衡服务器的虚拟服务及相应端口,指令rr 参数表示应用的调度算法为轮询算法(Round Robin)

1 ipvsadm -A -t 192.168.40.128:80 -s rr

  建立虚拟服务与后台真实服务器squid1和squid2提供的http服务的链接,并使用DR的工作方式

1 ipvsadm -a -t 192.168.40.128:80 -r 192.168.40.122 -g
2 ipvsadm -a -t 192.168.40.128:80 -r 192.168.40.110 -g

  LVS服务器的配置就到这,下一步去配置squid1和squid2缓存代理。

  4.在squid1安装squid软件(squid2做同样的设置,除了visible_hostname例外。)

1 yum install squid

  安装后,我们先去编辑一下squid的配置文件 /etc/squid/squid.conf

复制代码
1 vim /etc/squid/squid.conf
2 
3 cache_dir ufs /var/spool/squid 100 16 256
4 visible_hostname        squid
5 http_port 80 accel vhost vport
6 cache_peer 192.168.40.115 parent 80 0
7 http_access allow all
8 cache_mem 32 MB
复制代码

  简单的讲下各参数的意思,cache_dir 是缓存的目录,后面 100 代表的是这个目录最多能存放100MB数据,visible_hostname 必须得设置一个主机名,http_port 80 本机开放的80端口,cache_peer 是表示当我本机没有客户端请求的资源时,将去这个上一级去取,在这里即是40.115的80端口去获取。最后一个是cache_mem 表示在内存的缓存为32MB.

  改完上述文件后,我们用命令检查一下squid

1 squid -z         初始化后启动
2 squid -k parse    
3 squid -k reconfigure       修改配置后,重新加载

  接着,我们去配置squid的内核参数,使其不再转发IP数据包和处理ARP协议包

1 vim /etc/sysctl.conf
2 net.ipv4.conf.lo.arp_ignore = 1
3 net.ipv4.conf.lo.arp_announce = 2
4 net.ipv4.conf.all.arp_ignore = 1
5 net.ipv4.conf.all.arp_announce = 2

  更行内核参数,执行以下命令:

1 sysctl -p

  配置虚拟IP(VIP),和LVS服务器配置同一个IP

1 ifconfig lo:0 192.168.40.128 netmask 255.255.255.255 broadcast 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值