利用 Amazon CloudFront 和 S3 灵活分配流量

上篇日志给出的脚本有点无厘头,其实那是为了这篇在做铺垫。
在上篇日志中,通过抓取 Cacti 的 rrd 文件,我可以取到一个网卡的流量数据。由于 Cacti 默认保存为 byte 所以里面有一些计算过程。
这篇日志依旧是贴个简单的脚本,这个脚本实现了动态分出 apache 流量的功能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash
 
confpath=/home/web/download/.htaccess
 
doredirect ()
{
echo 'Redirect /a.zip http://cloudfront_cname/a.zip' > $confpath
}
 
cancelredirect ()
{
    sed -i '/cloudfront_cname/d' $confpath
}
 
wget http://192.168.1.1/status/lvsoutput.html -O /tmp/lvsoutput
 
speed=`cat /tmp/lvsoutput`
 
redirect=`grep 'cloudfront_cname' $confpath | wc -l`
 
case $redirect in
 
        0 )
        if [ $speed -gt 230 ]
            then doredirect
        else exit
        fi
           ;;
 
        * )
        if [ $speed -lt 200 ]
            then cancelredirect
        else exit
        fi
            ;;
esac

实现的功能是判断当前网络流量,如果高于230M,则将某些链接重定向到 Amazon CloudFront 服务上面去。如果流量小于200M,则将服务切回。

Amazon S3 和 CloudFront 都是很好的服务。既可以做存储,也可以用来做 http 服务器(下载比较实用),从而缓解自己机房里面的压力。

相关日志

Related posts

Leave a comment

0 Comments.

Leave a Reply


[ Ctrl + Enter ]