7.7 简单cdn运行维护

简介:

尽管在前面我们用大量的篇幅来描述怎么部署一个cdn环境,但这却不是我们的日常工作(实际工作场景没有谁成天在那里部署cdn环境)。部署和上线cdn,只是一个开始,运行和维护好这个环境,才是最关键的地方所在。

第一个常规性的工作,可能是缓存刷新操作。每当在源站上更新已经存在的文件时,我们就必须进行缓存刷新的操作,否则有些用户看到的页面内容仍然可能是陈旧的。刷新缓存的操作,是在缓存服务器上进行的,但我们有很多缓存服务器,一个一个手工刷新,既费时又容易出错和遗漏,因此最好把它自动化。下面介绍我用脚本自动更新全部缓存的方法(如果你有时间,可以写出单独对某个url更新的脚本【注1):

1、 登陆某个linux服务器,为安全起见,最好是一个无重要服务的主机。

2、 编写一个缓存服务器的所有ip地址和对应密码的列表(如图7-7所示),文件保存为/usr/local/bin/passwd.txt,其权限设置为700(只有root用户有读写执行权限)

7-7 passwd.txt文件片段

3、 编写expect脚本,用以实现自动应答ssh远程连接。此脚本命名为ssh.exp,也把它放在/usr/local/bin目录里,器内容如下:

#!/usr/bin/expect

set password [lrange $argv 0 0]

set ipaddr [lrange $argv 1 1]

set scriptname [lrange $argv 2 2]

set arg1 [lrange $argv 3 3]

set timeout -1

spawn ssh root@$ipaddr $scriptname $arg1

match_max 100000

expect "(yes/no)?" {

 send "yes\r"

 expect "password:"

 send "$password\r"

 } "password:" {send "$password\r"} "*host " {exit 1}

interact

4、 编写脚本/usr/local/bin/purge_cache.sh,其内容为:

#!/bin/bash

cd /usr/local/bin

for i in `awk '{print $1}' passwd.txt`

do

j=`awk -v I="$i" '{if(I==$1)print $2}' passwd.txt`

ssh.exp $j $i purge.sh

done

5、 在每个缓存服务器上编写脚本/usr/local/bin/purge,sh,其内容为:

#!/bin/sh

/usr/local/varnish/bin/varnishadm -T 127.0.0.1:3500 url.purge *$

6、 在每个缓存服务器上都执行一下脚本/usr/local/bin/purge.sh,检查其运行情况。

7、 现在再回到控制服务器上,手动运行第“4”步编写的脚本/usr/local/bin/purge_cache.sh,等待程序执行并查看其输出。

第二个常规性维护操作是备份数据。需要备份的数据有两部分:配置文件和数据文件。在cdn环境下,只有源站的网站的数据需要备份,其它的备份操作都是针对配置文件的,如dns区文件。

第三个常规性的操作是故障处理与恢复。因为整个cdn是基于高可用的架构,即便出现故障也不会导致服务全部停止,因此服务的恢复就不会有什么压力;另外也因为有监控系统的报警,很容易就知道问题出在什么地方。

再一个维护操作可能是增加cdn布点,这是用户访问量增大时需要采取的必然措施。因为整个cdn环境是可扩展的架构,因此增加新的布点不会导致服务停止。

【注1】需要在脚本接受多个命令行参数。有兴趣的读者,可自行编写一个脚本。






















本文转自sery51CTO博客,原文链接:http://blog.51cto.com/sery/639367 ,如需转载请自行联系原作者




相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
CDN Python
宝塔面板中腾讯云CDN插件运行出错解决办法
宝塔面板中腾讯云CDN插件运行出错解决办法
313 0
宝塔面板中腾讯云CDN插件运行出错解决办法
|
3天前
|
对象存储 CDN
阿里云CDN边缘脚本实现+字符转义%2B
对象存储OSS中,文件名包含+字符时,请求URL未转义会导致404错误。解决方法是将URL中的+字符转义为%2B,或通过CDN/DCDN边缘脚本自动转义。示例脚本:若URI包含+,则替换为%2B。
39 10
|
13天前
|
网络协议 网络安全 Docker
将Certbot/ACME.sh自动化申请的证书自动部署到阿里云CDN
本文介绍了阿里云 CDN SSL 证书自动更新工具,定期检查证书有效期,使用Let's Encrypt 等工具签发的证书自动更新至阿里云 CDN,支持 Docker 及 .NET 8 部署,简化证书管理流程。
|
2月前
|
云安全 网络安全 CDN
阿里云CDN遇到攻击?别慌,教你如何应对!
阿里云CDN遇到攻击?别慌,教你如何应对!
|
2月前
|
缓存 监控 安全
阿里云CDN设置阀值的指南
阿里云CDN设置阀值的指南
|
2月前
|
缓存 前端开发 JavaScript
阿里云CDN:怎么让网站变快
阿里云CDN:怎么让网站变快
|
2月前
|
JSON API 数据格式
阿里云国际版CDN查询实时带宽步骤
阿里云国际版CDN查询实时带宽步骤
|
2月前
|
CDN
阿里云国际版CDN网页打不开、页面报错该如何解决?
阿里云国际版CDN网页打不开、页面报错该如何解决?
|
2月前
|
缓存 边缘计算 API
速度、可靠性和全球影响力:阿里云国际如何选择合适的 CDN
速度、可靠性和全球影响力:阿里云国际如何选择合适的 CDN
|
3月前
|
安全 CDN
阿里云CDN产品解读及全站加速在游戏行业的最佳实践!
阿里云CDN(内容分发网络)为全球用户提供快速、稳定、安全的内容分发加速服务,显著提升访问响应速度和成功率
103 13
下一篇
DataWorks