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

相关文章

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

python uv包管理小结

《pythonuv包管理小结》uv是一个高性能的Python包管理工具,它不仅能够高效地处理包管理和依赖解析,还提供了对Python版本管理的支持,本文主要介绍了pythonuv包管理小结,具有一... 目录安装 uv使用 uv 管理 python 版本安装指定版本的 Python查看已安装的 Python

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring