Varnish之CDN推送管理平台实例

2024-02-19 08:38

本文主要是介绍Varnish之CDN推送管理平台实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CDN简介

CDN(Content Delivery Network)内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

CDN优势

CDN能几乎涵盖国内所有线路。而在可靠性上, CDN 在结构上实现了多点的冗余,即使某一个节点由于意外发生故障,对网站的访问能够被自动导向其他的健康节点进行响应。CDN能轻松实现网站的全国铺设,不必考虑服务器的投入与托管、不必考虑新增带宽的成本、不必考虑多台服务器的镜像同步、不必考虑更多的管理维护技术人员。

主机环境:
  • rhel6.5 selinux and iptables disabled
实验主机:
主机名IP服务
server1172.25.254.1varnish
server2172.25.254.2apache
server3172.25.254.3apache

varnish cdn 推送平台

  • varnish 相关配置请参考上篇博文
    • http://blog.csdn.net/sunny_future/article/details/79319613
  • varnish-server1
[root@server1 ~]# yum install -y httpd[root@server1 ~]# vim /etc/httpd/conf/httpd.conf ##修改端口为8080,避免冲突
Listen 8080[root@server1 ~]# /etc/init.d/httpd start
[root@server1 ~]# netstat -antlp

这里写图片描述

[root@server1 ~]# yum install -y php        ##需要安装 php 支持
[root@server1 ~]# yum install -y unzip
[root@server1 ~]# unzip -x bansys.zip
[root@server1 ~]# mv bansys/*  /var/www/html/
[root@server1 ~]# ls /var/www/html/
class_socket.php  config.php  index.php  purge_action.php  static
[root@server1 ~]# vim /var/www/html/config.php 
<?php   //varnish主机列表//可定义多个主机列表$var_group1 = array('host' => array('172.25.254.1'),'port' => '80',             );//varnish群组定义//对主机列表进行绑定$VAR_CLUSTER = array('www.westos.org' => $var_group1,);//varnish版本//2.x和3.x推送命令不一样$VAR_VERSION = "3";
?>
[root@server1 ~]# /etc/init.d/httpd restart
物理机测试:
  • 查看解析
[root@fundation20 Desktop]# cat /etc/hosts
172.25.254.1 server1 www.westos.org westos.org bbs.westos.org
  • 浏览器测试
    这里写图片描述
http 模式需要对 varnish 做以下设置
[root@server1 ~]# vim /etc/varnish/default.vcl 
##添加如下
acl westos {     #设置访问控制,即白名单"127.0.0.1";"172.25.254.0"/24;}
backend web1 {.host = "172.25.254.2";.port = "80";
}
backend web2 {.host = "172.25.254.3";.port = "80";
}
director lb round-robin {{ .backend = web1; }{ .backend = web2; }
}sub vcl_recv {if (req.request == "BAN") {if (!client.ip ~ westos) {error 405 "Not allowed.";}ban("req.url ~ " + req.url);error 200 "ban added";}if (req.http.host ~ "^(www.)?westos.org") {set req.http.host = "www.westos.org";set req.backend = lb;#return(pass);    ##还原缓存} elsif (req.http.host ~ "^bbs.westos.org") {set req.backend = web2;} else {error 404 "westos cache";}}
#查看缓存命中情况
sub vcl_deliver {if (obj.hits > 0) {set resp.http.X-Cache = "HIT from test cache";}else {set resp.http.X-Cache = "MISS from test cache";}return (deliver);}
[root@server1 ~]# /etc/init.d/varnish restart
Stopping Varnish Cache:                                    [  OK  ]
Starting Varnish Cache:                                    [  OK  ]
  • apache-server2
#保持Varnish负载均衡中server2配置
http://blog.csdn.net/sunny_future/article/details/79319613
  • apache-server3
#保持Varnish负载均衡中server3配置
http://blog.csdn.net/sunny_future/article/details/79319613
物理机测试:
  • 查看解析
[root@fundation20 Desktop]# cat /etc/hosts
172.25.254.1 server1 www.westos.org westos.org bbs.westos.org
  • 终端测试
    • 一般情况下
      这里写图片描述
    • CDN推送
      写入推送页面,点击确认提交
      这里写图片描述
      显示推送成功
      这里写图片描述
    • 页面已经更新
      这里写图片描述

这篇关于Varnish之CDN推送管理平台实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/724123

相关文章

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

MySQL的索引失效的原因实例及解决方案

《MySQL的索引失效的原因实例及解决方案》这篇文章主要讨论了MySQL索引失效的常见原因及其解决方案,它涵盖了数据类型不匹配、隐式转换、函数或表达式、范围查询、LIKE查询、OR条件、全表扫描、索引... 目录1. 数据类型不匹配2. 隐式转换3. 函数或表达式4. 范围查询之后的列5. like 查询6

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS