varnish cdn 推送平台

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

实验环境:物理机(访问测试): willis.example.com  172.25.254.6

                 varnish缓存端:      server1.example.com  172.25.254.1

                负载均衡端1:        web1.example.com   172.25.254.10

                负载均衡端2:        web2.example.com   172.25.254.20

实验内容:1.解压安装包

                 2.配置数据库信息

                 3.安装varnish,http与php

                 4.配置varnish

                 5.访问端测试

                 6.cdn推送 

实验前提:负载均衡端已配置好虚拟主机

实验安装包:bansys.zip

                    varnish-3.0.5-1.el6.x86_64.rpm  

                    varnish-libs-3.0.5-1.el6.x86_64.rpm


1.解压安装包

[root@server1 mnt]# ls

bansys.zip

[root@server1 mnt]# unzip bansys.zip -d /usr/local/lnmp/


2.配置数据库信息

[root@server1 mnt]# vim /var/www/html/bansys/config.php #只保留如下设置,其余注释掉

<?php

 ///////////////////////数据库信息/////////////////////////

 //数据库信息

# $host = "localhost";

# $user = "";

# $passwd = "";

# $dbname = "bansys";

# $conn = mysql_connect($host, $user, $passwd) or die('Unable to connect database...');

# mysql_select_db($dbname,$conn);

# $query = "select ResourceIP from purgeapp_resource";

# $results = mysql_query($query,$conn);

#

#  while ($row=mysql_fetch_row($results)) {

#         $varnish_host[] =  $row[0];

#   }

# #mysql_close($conn);

////////////////////////////////////////////////////////


 //varnish主机列表

 //可定义多个主机列表

 $var_group1 = array(

                        'host' => array('172.25.254.1'),

                                                'port' => '6082',

                    );


//这个使用了mysql读取数据                                               

# $var_group3 = array(

#                        'host' => $varnish_host,

#                                               'port' => '6082',                               

#                    );                                          


 //varnish群组定义

 //对主机列表进行绑定

 $VAR_CLUSTER = array(

                         'www.willis.com' => $var_group1,

                     );


 //varnish版本

 //2.x和3.x推送命令不一样

 $VAR_VERSION = "3";

?>

                                    

3.安装varnish,http与php

[root@server1 mnt]# ls

    varnish-3.0.5-1.el6.x86_64.rpm  varnish-libs-3.0.5-1.el6.x86_64.rpm

[root@server1 mnt]# yum install * -y

[root@server1 mnt]# vim /etc/sysconfig/varnish 

    VARNISH_LISTEN_PORT=80 ##设定varnish的端口为80

[root@server1 mnt]# /etc/init.d/varnish start

[root@server1 html]# yum install php httpd -y

[root@server1 html]# vim /etc/httpd/conf/httpd.con

    136  Listen 8080  

    402  DirectoryIndex    index.php  index.html index.html.var

[root@server1 html]# mv bansys/  upindex

[root@server1 html]# /etc/init.d/httpd start


4.配置varnish

[root@server1 mnt]#vim /etc/varnish/default.vcl

backend web1 {

  .host = "172.25.254.20";

  .port = "80";

}

backend web2 {

   .host="172.25.254.10";

   .port="80";

}

director willislb round-robin {

        { .backend = web1; }

        { .backend = web2; }

}

sub vcl_deliver{

    if(obj.hits>0){

        set resp.http.X-Cache="HIT from willis cache";

        }

     else{

        set resp.http.X-Cache="MISS from willis cache";

        }

 return(deliver);

    }


acl upindex {

        "127.0.0.1";

         "172.25.254.0"/24;

}

sub vcl_recv {

  if (req.request == "BAN") {

        if (!client.ip ~ upindex) {

                error 405 "Not allowed.";

        }

        ban("req.url ~ " + req.url);

                error 200 "ban added";

        }


   if (req.http.host ~ "^(www.)?willis.com" ) {

        set req.http.host = "www.willis.com";

        set req.backend = willislb;

        #return(pass);          ###有缓存,用来测试缓存平台

        }

        elsif (req.http.host ~ "^(www.)?linux.com" ) {

        set req.http.host = "www.linux.com";

        set req.backend = willislb;

        return(pass);

        }

        else {error 404 "willis cache";

        }

}


5.访问端测试: 

[root@willis Desktop]# curl -I http://www.willis.com/index.html

    X-Cache: MISS from willis cache

[root@willis Desktop]# curl -I http://www.willis.com/index.html

    X-Cache: HIT from willis cache

[root@willis Desktop]# curl -I http://www.willis.com/index.html

    X-Cache: HIT from willis cache


6.cdn推送:


wKioL1feIBGR8xuLAAB-lrAC4KU771.png


wKiom1feIBLQyxaTAABSpiHZQnA217.png


wKioL1feIBKjDgAlAAAyswZs9I8824.png




推送完之后测试:

[root@willis Desktop]# curl -I http://www.willis.com/index.html

    X-Cache: MISS from willis cache



本文转自willis_sun 51CTO博客,原文链接:http://blog.51cto.com/willis/1853589,如需转载请自行联系原作者

相关文章
|
15天前
|
缓存 安全 网络安全
解锁网站速度与安全:CDN 使用指南及免费平台推荐
在互联网时代,网站的速度和安全性至关重要。CDN(内容分发网络)通过全球缓存节点提升访问速度、降低延迟,并提供安全防护。本文详解CDN的作用与适用场景,推荐几款免费CDN平台,如阿里云、鸟盾安全CDN等,助您选择合适的CDN服务,保障网站性能与安全。
|
存储 缓存 边缘计算
搭建直播平台CDN都要做哪些工作?
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求
搭建直播平台CDN都要做哪些工作?
|
边缘计算 分布式计算 Java
直播平台搭建中流媒体和CDN要做哪些工作
流媒体服务器的性能好坏以及稳定性决定了终端播放器端的用户体验效果。
|
负载均衡 算法 应用服务中间件
搭建直播平台需要从CDN“内部”入手
大家都知道对于搭建直播平台来说,CDN是其中非常重要的一个部分。CDN又叫内容分发网络,主要包含内容分发、负载均衡、调度等功能模块。其中负载均衡在搭建过程中也扮演了较为重要的角色。在互联网早期,业务流量还比较小,业务逻辑相对来说也比较简单,只需要单台服务器就可以满足基本的需求了。
2222 0
|
存储 视频直播 对象存储
专业直播APP开发服务商教你直播平台搭建需要准备些什么——流媒体CDN服务篇
面对市面上良莠不齐的直播系统源码,以及参差不齐的搭建部署服务水平,却让想要运营直播平台的朋友们“头疼不已”。作为业内专业的直播APP开发服务商,今天就帮大家梳理下直播平台搭建需要准备的内容。
3215 0
|
4天前
|
开发者 CDN
阿里云CDN边缘脚本示例实现/?p123重定向/p/123.html
本文介绍了如何通过EdgeScript实现URL重定向,将`http://www.example.com/?p123`重定向到`http://www.example.com/p/123.html`。使用捕获请求URI中的参数并进行重写,具体代码和内置变量参考阿里云CDN开发者文档。示例代码展示了关键的实现步骤。
20 8
|
23天前
|
CDN
阿里云CDN收费标准,不同计费模式价格表(基础服务费和增值服务费用整理)
阿里云CDN的计费包括基础费用和增值费用。基础费用有三种计费方式:按流量、带宽峰值和月结95带宽峰值,默认按流量计费。增值服务如HTTPS、QUIC、WAF和实时日志等,使用才收费。详细价格和规则请参考阿里云官网。
84 12
|
23天前
|
CDN
阿里云CDN怎么收费?看这一篇就够了,CDN不同计费模式收费价格全解析
阿里云CDN的费用由基础费用和增值费用组成。基础费用有三种计费方式:按流量、按带宽峰值和月结95带宽峰值,默认为按流量计费,价格根据使用量阶梯递减。增值费用包括静态HTTPS请求、QUIC请求等,按实际使用量收费,不使用不收费。具体收费标准和详细规则可参考阿里云官方页面。
|
1月前
|
负载均衡 定位技术 网络安全
阿里云国际站注册教程:阿里云cdn加速怎样
通过阿里云CDN加速,用户可以实现网站内容的快速加载,提升用户体验,同时减轻源站服务器的压力,提高网站的访问速度和稳定性
|
2月前
|
对象存储 CDN
阿里云CDN边缘脚本实现+字符转义%2B
对象存储OSS中,文件名包含+字符时,请求URL未转义会导致404错误。解决方法是将URL中的+字符转义为%2B,或通过CDN/DCDN边缘脚本自动转义。示例脚本:若URI包含+,则替换为%2B。
86 10

热门文章

最新文章