阿里云ECS内网拉取OSS存储并设置CDN镜像,省钱教程

建站教程 服务器租用 11个月前 (08-30) 2344次浏览 5个评论 扫描二维码

阿里云 ECS 内网拉取 OSS 存储并设置 CDN 镜像,省钱教程

对于付不起钱的小伙计,为了给公司省钱,想尽一切招数。今天就来分享一个使用阿里云 OSS存储搭配 CND 使用的网站ECS 服务器部署方法《阿里云 ECS内网拉取 OSS 存储并设置CDN镜像》省钱教程。

简介

阿里云 OSS

阿里云提供的一种文件存储方案,和我们以前接触的百度云 BCS 和新浪云的 Storage 是一个道理,即文件的云端存储方案。一般而言,OSS 只存储网站所需要的静态文件,而不存储程序文件。例如将网站的图片、视频、脚本、样式等文件存储在 OSS,同时,OSS 实际上有点类似我们以前使用的第三方服务商提供的相册,OSS 上的文件,阿里云会给一个 url 让你可以直接使用。在依托 OSS 在 windows 或 mac 上的客户端,管理 OSS 上的附件资源也很方便。总之,OSS 是帮助网站存储文件的一项服务。

我们已经有自己的服务器了,为什么还要将文件传到 OSS 上,然后通过阿里云提供的 url 来使用附件呢?实际上我们现在的服务端开发工作中,一定要有云的概念,即我们在搭建服务器环境,设计服务端架构的时候,必须以云计算出发去设计和实施。这是我们这几年来服务端发展的结果。(当然,如果一个网站实在太小了,没多少人访问,也可以忽视。)将网站运行在 ECS(云服务器)上,同时,把一些大块的文件(图片、视频)放在 OSS,可以有效的降低访客访问(下载)这些文件时,对服务器带来的 IO 压力,让服务器运行起来更加流畅。这是我们使用 OSS 服务的最根本原因。除此之外,使用 OSS 还可以加快附件的传输速度,用户可以明显感觉图片、视频加载变快,结合CDN,可以在文件的访问路径上进一步优化。相对于通过加服务器的存储空间的话费,使用 OSS 还可以省钱。

CDN 的作用

CDN这个词应该很多人都略知一二。我们就不解释其运作原理,直接说它都有什么好处。CDN通过网络途径,直接解决了网络访问不畅的问题。在使用CDN之前,你直接将域名解析到你的服务器,一个用户访问你的网站必须通过自家路由器,再到区域电信运营商,再到主干网,再通过网络路由、DNS 找到你的服务器,再把需要的资源下载到浏览器进行展示。中间任何一个环节的网络不好,都会导致网站访问变慢,甚至访问失败。而使用CDN之后,你把域名解析到 CDN 提供的一个中间地址,再再 CDN 服务商处设置你的服务器真实 IP。当用户访问你的网站的时候,CDN 服务商把你的网站资源缓存在自己的服务器上,并把距离访客最近服务器上的缓存返回给访客,这样直接加快了网站的访问速度。在七牛提供的服务中,我们遇到过一个词,叫“镜像”,把你的网站镜像到七牛,实际上,这个过程就是 CDN 了,所以,这里的镜像等于 CDN。

除了上述的主要功能外,CDN 近年来还增加智能解析、SEO、防 DDOS 等服务。所以,现在的网站,不用 CDN,都不好意思说自己的网站多牛逼。

通过内网获取 OSS 中的文件在外网中返回

在 OSS 的收费策略中,存储、外网访问、API 调用这三项都要收费,其中外网访问的费用还挺高。CDN 也要收费,OSS 外网访问也要收费,总之阿里云是赚翻了。但是,在 OSS 的收费策略中注明了:内网访问免费。也就是说,如果我们的使用阿里云的 ECS 通过内网去请求 OSS 中的资源,是不收费的。所以,我们现在要解决的问题就是,通过内网去请求的资源,怎么在外网中返回给访客呢?

服务器和 OSS Bucket 必须在同一区域

这是一个前提条件,也就是要构建“内网”这个组合。如果你的网站服务器购买的是杭州的,在创建 Bucket 的时候,就要选择杭州,如果是深圳的服务器,创建时就要选择深圳的。

学会使用 ningx 的代理设置

nginx 除了作为 web 服务器之外,另外一个重大功能就是作为代理服务器。这种轻便又多功能的特性,应该是 nginx 身上最大的闪光点了。那么怎么来实现这种代理呢?其实很简单。

打开你的 nginx 的配置文件,例如 nginx.conf,如果你对这个配置文件已经有一定的了解,那么应该可以很容易区分 http 和 server 两个区块的区别。我们要做的,是在其中一个 server 中增加一些配置项。具体是哪一个 server,就看你绑定域名的时候是怎么安排的。总之,核心的配置如下:

http {
    ## ....
    server {
        ## ....
        location ~ .*\.(mp3|mp4|ovg)$ {
            proxy_pass  http://***.oss-cn-beijing-internal.aliyuncs.com;
        }
        ## ...
    }
    ## ....
}

上面灰色的,需要在 OSS Bucket 概览页获取,修改 nginx 的配置之后,reload 服务。

合理安排你的网站目录和域名布局

在了解上面的这两项基础之上,你需要再思考一个问题:你打算仍然用 http://www.fuwuqizuyong.cc 访问你的网站和所有静态文件,还是打算另外使用一个(或几个)域名来控制你的静态文件访问。我的建议是另外分出一个 static.yourdomain.com 域名作为访问你的静态文件的域名,因为后面我们会使用 cdn,而 cdn 则要求先解析域名到 cdn 服务商提供的地址。

那么我们接下来处理这个 static 域名。原来的 www 的所有东西都可以不同动,你需要再在 nginx.conf 中写一个新的 server 来绑定 static 域名。同时,这个 server 中必须保证:php 是不能执行的,同时不能被访问(如果可以被访问,那么 php 文件会被下载);所绑定的根目录路径和 www 的是一样的,也就是说,访问 static 其实还是访问 www,这样,原来所有的静态文件访问地址只需要替换域名,而无需修改 uri;添加上面的代理配置,注意,并不是所有的文件类型都通过代理去调用 OSS 中的资源,例如 js、css,就可以直接使用本机上的(当然,如果你觉得不嫌麻烦,或者想统一管理,其实也可以全部静态文件都丢到 OSS 去,包括 js、css);最后,重载 nginx 配置,解析 static 域名到你的服务器 IP(这时我们还没有涉及 CDN)。

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|eot|otf|svg|ttf|woff)$ {
    expires 30d;
}
location ~ .*\.(js|css)?${
    expires 12h;
}
# 使用 OSS 上面的对象
location ~ .*\.(mp3|mp4|ovg)$ {
    expires 30d;
    rewrite /(.+)$ /$1 break;
    proxy_pass http://你的 bucket.oss-cn-你的城市-internal.aliyuncs.com;
}

location ~ .*\.php$ {
     deny all;
}
location ~ /\.{
    deny all;
}

如果一切顺利,你应该可以使用 static 域名访问你的静态文件了。但是,如上配置,你得尽快把 mp3 mp4 ovg 文件上传到 OSS 上面,而且还得保证 url 路径和你的网站中使用的 url 路径是一致的。

接下来的工作,就是把你的网站中的所有原来调用静态文件的地址,修改为 static 域名对应的 url 地址,这样,就部署完成了。

部署 CDN 提速网站

为了省钱,我们可以考虑去使用一些效果还可以但免费的 CDN(或者收费很便宜的也行)。CDN 的部署很简单,我们先注册一个 CDN,将上面解析到服务器 IP 的 static 域名重新解析到 CDN 服务商提供的地址,再在 CDN 后台将源地址 IP 设置为我们自己的服务器 IP。这样就轻松搞定了。

但是,如果你偶尔还要修改 css 文件,如果直接使用 cdn 的话,会导致 css 文件缓存,这不利于及时刷新界面,让访客看到最新的界面效果。解决这个问题是矛盾的,我们又希望得到 cdn 的提速效果,又希望及时更新文件。如果你必须使用 cdn,那么只能使用付费的 cdn,它们一般会提供一个 api,当你更新文件的时候,可以调用这个 api,让 cdn 主动更新对应的文件。但是,如果你实在不想这么麻烦,干脆直接使用 www 域名来读取 css 和 js 吧,把它们合并后输出,节省宽带,推荐小胖撰写的一篇文章《openresty+Lua+GraphicsMagick 进行类似淘宝的图片处理》。

ok,通过本文的讲解,你应该掌握了通过内网获取 OSS 资源,然后展示在外网的方法了吧。

参考文献:

以上内容是服务器租用网收集自网络的,只为分享给大家学习该 ECS 内网拉取阿里云 OSS的技术,其实前段时间服务器租用网也尝试过这种类似内网拉取的方式,只是当时没有看到这篇文章所以没有成功,当然了如果有小伙伴们懂 WordPress 内网拉取 OSS 图片的技术的话,可以告诉下服务器租用网,有红包哦!


服务器租用(www.fuwuqizuyong.cc) , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明:阿里云 ECS 内网拉取 OSS 存储并设置 CDN 镜像,省钱教程
服务器租用
喜欢 (5)
[]
分享 (0)
服务器租用
关于作者:
服务器租用专注为广大站长与网友朋友分享建站教程、SEO优化文章、网站模板资源、服务器软件(Web环境、建站程序)等,另外为大家推荐各种国内外服务器、香港服务器、虚拟主机、域名购买优惠信息与服务器相关知识。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到
(5)个小伙伴在吐槽
  1. 这个博客不简单,看了还想接着看。
    快乐赚2017-09-12 06:57 回复 Windows 7 | 搜狗浏览器 2.X
  2. 没事就来转一转,每天多吃两碗饭!
    沃八达2017-09-15 07:31 回复 Windows 7 | 搜狗浏览器 2.X
  3. 能让人来访的乐此不疲,这里就是有那么大的魅力!
    三五营销软件2017-09-20 14:17 回复 Windows 7 | 搜狗浏览器 2.X
  4. 人生短暂,开心每一天!
    沃八达2017-09-25 09:04 回复 Windows 7 | 搜狗浏览器 2.X
  5. 每逢佳节倍思亲,看你博客很用心!
    沃八达2017-10-01 07:49 回复 Windows 7 | 搜狗浏览器 2.X