Linux中的推送操作与负载均衡器

本文详细介绍如何配置LVS实现负载均衡及使用Varnish作为缓存服务器进行内容推送的方法。包括LVS的基本配置、DR模式下健康检查的自动化配置、Varnish的安装与配置等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

『1』推送操作      --需要在网上提前找到bansys的安装包

在虚拟机1中:

1、yum install -y httpd php unzip

2、vim /etc/http/conf/httpd.conf
Listen 8080               --因为与varinsh中的80端口发生冲突,所以改变apache的端口
3、/etc/init.d/httpd start
4、解压bansys并放到http发布目录
5、vim /var/www/html/config.php
<?php

 //可定义多个主机列表
 $var_group1 = array(
                        'host' => array('172.25.254.1'),    #设定推送的主机信息
                                                'port' => '80',                                 
                    );
                                                                                       
 //varnish群组定义
 //对主机列表进行绑定
 $VAR_CLUSTER = array(
                         'www.iop.com' => $var_group1,
                     );


 //varnish版本
 //2.x和3.x推送命令不一样
 $VAR_VERSION = "3";

?>


6、/etc/init.d/httpd restart


7、
vim /etc/varnish/default.vcl
acl iop{        #设置规则,设定可以推送的人和推送对象
"127.0.0.1";
"172.25.254.0"/24;
}
sub vcl_recv {
if (req.request == "BAN") {    #判断访问对象
if (!client.ip ~ iop) {
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}
if (req.http.host ~ "^(www.)?iop.com") {
set req.http.host = "www.iop.com";
set req.backend = lb;
#return (pass);
} elsif (req.http.host ~ "^bbs.iop.com") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}

8、/etc/init.d/varnish reload

>client测试:
172.25.254.1:8080
进入推送页面   选http服务即可推送成功

/index.html


www.iop.com/index.html

              --此为推送成功

        --推送成功后的不同结果


『2』负载均衡器

网络模型实质:
4层转发,7层代理

DR-lvs 基于4层模型:    #适用于CDN节点
常用:lvs==linux virtual server

1.在server1中利用ipvsadm执行内核层面可执行的策略

策略内容为:rs不广播自己的vip地址,其他用户对他的vip地址直接访问时拒绝并不回应。

(1)添加yum仓库内容

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.34.250/rhel6.5/LoadBalancer
gpgcheck=0

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.34.250/rhel6.5/HighAvailability
gpgcheck=0

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.34.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.34.250/rhel6.5/ScalableFileSystem
gpgcheck=0

(2)安装ipvsadm

   yum install ipvsadm -y

(3)ipvsadm -A -t 172.25.254.100:80 -s rr        #添加虚拟服务,并设置轮转调度算法
(4)ipvsadm -a -t 172.25.254.100:80 -r 172.25.34.2:80 -g

(5)ipvsadm -a -t 172.25.34.100:80 -r 172.25.34.3:80 -g
(6)/etc/init.d/ipvsadm save    #保存策略
(7)ip addr add 172.25.254.100/24 dev eth0    #添加虚拟ip


2.在server2(rs1),server3(rs2)上添加相同的策略

(1)yum install arptables_jf -y        #安装arp防火墙
(2)ip addr add 172.25.254.100/32 dev eth0    #添加虚拟ip
(3)arptables -A IN -d 172.25.254.100 -j DROP    #拒绝访问虚拟ip的请求
(4)arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.2(server3换成3)    #不广播本机的虚拟ip,只广播真实ip,因为vs的虚拟ip和server的虚拟ip是一样的,所以只能让vs响应arp应答
5、/etc/init.d/arptables_jf save

测试后访问结果:

        --物理地址相同,可见是通过调度机(server1)访问的目的地址


『3』自动化DR:对后端健康检查
#server1---vs:
1、yum install perl ldirectord-3.9.5-3.1.x86_64.rpm -y
2、cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
3、vim /etc/ha.d/ldirectord.cf    #自动创建Lvs策略

virtual=172.25.254.100:80
        real=172.25.254.2:80 gate
        real=172.25.254.3:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        scheduler=rr
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp
        checktype=negotiate
        checkport=80
        request="index.html"
        #receive="Test Page"
        #virtualhost=www.x.y.z
4、/etc/init.d/ipvsadm stop
5、/etc/init.d/ldirectord start
6、vim /etc/http/conf/httpd.conf
Listen 8080
7、rm -rf /var/www/html/*
8、创建新的html文件
9、/etc/init.d/httpd restart

#测试:关闭server2,server3 http 服务
#client测试:
curl 172.25.254.100    #或者添加解析后curl www.iop.com
           ----已进行轮循

            ----关闭server2httpd后(server3同理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值