<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>服务器安全维护工作室 &#187; 阿里云OSS内网免费流量外网用，搭配CDN镜像，省钱教程</title>
	<atom:link href="https://www.fuwuqiok.com/tag/%e9%98%bf%e9%87%8c%e4%ba%91oss%e5%86%85%e7%bd%91%e5%85%8d%e8%b4%b9%e6%b5%81%e9%87%8f%e5%a4%96%e7%bd%91%e7%94%a8%ef%bc%8c%e6%90%ad%e9%85%8dcdn%e9%95%9c%e5%83%8f%ef%bc%8c%e7%9c%81%e9%92%b1%e6%95%99/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fuwuqiok.com</link>
	<description></description>
	<lastBuildDate>Sun, 01 Mar 2020 07:28:40 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.26</generator>
	<item>
		<title>阿里云OSS内网免费流量外网用，搭配CDN镜像，省钱教程</title>
		<link>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91oss%e5%86%85%e7%bd%91%e5%85%8d%e8%b4%b9%e6%b5%81%e9%87%8f%e5%a4%96%e7%bd%91%e7%94%a8%ef%bc%8c%e6%90%ad%e9%85%8dcdn%e9%95%9c%e5%83%8f%ef%bc%8c%e7%9c%81%e9%92%b1%e6%95%99/</link>
		<comments>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91oss%e5%86%85%e7%bd%91%e5%85%8d%e8%b4%b9%e6%b5%81%e9%87%8f%e5%a4%96%e7%bd%91%e7%94%a8%ef%bc%8c%e6%90%ad%e9%85%8dcdn%e9%95%9c%e5%83%8f%ef%bc%8c%e7%9c%81%e9%92%b1%e6%95%99/#comments</comments>
		<pubDate>Sat, 11 Mar 2017 00:24:46 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[阿里云OSS内网免费流量外网用，搭配CDN镜像，省钱教程]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3205</guid>
		<description><![CDATA[<p>对于付不起钱的小伙计，为了给公司省钱，想尽一切招数。今天就来分享一个使用阿里云OSS存储搭配CND使用的网站服 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91oss%e5%86%85%e7%bd%91%e5%85%8d%e8%b4%b9%e6%b5%81%e9%87%8f%e5%a4%96%e7%bd%91%e7%94%a8%ef%bc%8c%e6%90%ad%e9%85%8dcdn%e9%95%9c%e5%83%8f%ef%bc%8c%e7%9c%81%e9%92%b1%e6%95%99/">阿里云OSS内网免费流量外网用，搭配CDN镜像，省钱教程</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>对于付不起钱的小伙计，为了给公司省钱，想尽一切招数。今天就来分享一个使用阿里云OSS存储搭配CND使用的网站服务器部署方法。</p>
<h2 id="title-1">简介</h2>
<h3 id="title-1-1">阿里云OSS</h3>
<p>阿里云提供的一种文件存储方案，和我们以前接触的百度云BCS和新浪云的Storage是一个道理，即文件的云端存储方案。一般而言，OSS只存储网站所需要的静态文件，而不存储程序文件。例如将网站的图片、视频、脚本、样式等文件存储在OSS，同时，OSS实际上有点类似我们以前使用的第三方服务商提供的相册，OSS上的文件，阿里云会给一个url让你可以直接使用。在依托OSS在windows或mac上的客户端，管理OSS上的附件资源也很方便。总之，OSS是帮助网站存储文件的一项服务。</p>
<p>我们已经有自己的服务器了，为什么还要将文件传到OSS上，然后通过阿里云提供的url来使用附件呢？实际上我们现在的服务端开发工作中，一定要有云的概念，即我们在搭建服务器环境，设计服务端架构的时候，必须以云计算出发去设计和实施。这是我们这几年来服务端发展的结果。（当然，如果一个网站实在太小了，没多少人访问，也可以忽视。）将网站运行在ECS（云服务器）上，同时，把一些大块的文件（图片、视频）放在OSS，可以有效的降低访客访问（下载）这些文件时，对服务器带来的IO压力，让服务器运行起来更加流畅。这是我们使用OSS服务的最根本原因。除此之外，使用OSS还可以加快附件的传输速度，用户可以明显感觉图片、视频加载变快，结合CDN，可以在文件的访问路径上进一步优化。相对于通过加服务器的存储空间的话费，使用OSS还可以省钱。</p>
<h3 id="title-1-2">CDN的作用</h3>
<p>CDN这个词应该很多人都略知一二。我们就不解释其运作原理，直接说它都有什么好处。CDN通过网络途径，直接解决了网络访问不畅的问题。在使用CDN之前，你直接将域名解析到你的服务器，一个用户访问你的网站必须通过自家路由器，再到区域电信运营商，再到主干网，再通过网络路由、DNS找到你的服务器，再把需要的资源下载到浏览器进行展示。中间任何一个环节的网络不好，都会导致网站访问变慢，甚至访问失败。而使用CDN之后，你把域名解析到CDN提供的一个中间地址，再再CDN服务商处设置你的服务器真实IP。当用户访问你的网站的时候，CDN服务商把你的网站资源缓存在自己的服务器上，并把距离访客最近服务器上的缓存返回给访客，这样直接加快了网站的访问速度。在七牛提供的服务中，我们遇到过一个词，叫“镜像”，把你的网站镜像到七牛，实际上，这个过程就是CDN了，所以，这里的镜像等于CDN。</p>
<p>除了上述的主要功能外，CDN近年来还增加智能解析、SEO、防DDOS等服务。所以，现在的网站，不用CDN，都不好意思说自己的网站多牛逼。</p>
<h2 id="title-2">通过内网获取OSS中的文件在外网中返回</h2>
<p>在OSS的收费策略中，存储、外网访问、API调用这三项都要收费，其中外网访问的费用还挺高。CDN也要收费，OSS外网访问也要收费，总之阿里云是赚翻了。但是，在OSS的收费策略中注明了：内网访问免费。也就是说，如果我们的使用阿里云的ECS通过内网去请求OSS中的资源，是不收费的。所以，我们现在要解决的问题就是，通过内网去请求的资源，怎么在外网中返回给访客呢？</p>
<h3 id="title-2-1">服务器和OSS Bucket必须在同一区域</h3>
<p>这是一个前提条件，也就是要构建“内网”这个组合。如果你的网站服务器购买的是杭州的，在创建Bucket的时候，就要选择杭州，如果是深圳的服务器，创建时就要选择深圳的。</p>
<h3 id="title-2-2">学会使用ningx的代理设置</h3>
<p>nginx除了作为web服务器之外，另外一个重大功能就是作为代理服务器。这种轻便又多功能的特性，应该是nginx身上最大的闪光点了。那么怎么来实现这种代理呢？其实很简单。</p>
<p>打开你的nginx的配置文件，例如nginx.conf，如果你对这个配置文件已经有一定的了解，那么应该可以很容易区分http和server两个区块的区别。我们要做的，是在其中一个server中增加一些配置项。具体是哪一个server，就看你绑定域名的时候是怎么安排的。总之，核心的配置如下：</p>
<pre>http {
    ## ....
    server {
        ## ....
        location ~ .*\.(mp3|mp4|ovg)$ {
            proxy_pass  http://***.oss-cn-beijing-internal.aliyuncs.com;
        }
        ## ...
    }
    ## ....
}</pre>
<p>上面灰色的，需要在OSS Bucket概览页获取，修改nginx的配置之后，reload服务。</p>
<h3 id="title-2-3">合理安排你的网站目录和域名布局</h3>
<p>在了解上面的这两项基础之上，你需要再思考一个问题：你打算仍然用<a href="https://www.fuwuqiok.com">www.fuwuqiok.com</a>访问你的网站和所有静态文件，还是打算另外使用一个（或几个）域名来控制你的静态文件访问。我的建议是另外分出一个static.yourdomain.com域名作为访问你的静态文件的域名，因为后面我们会使用cdn，而cdn则要求先解析域名到cdn服务商提供的地址。</p>
<p>那么我们接下来处理这个static域名。原来的www的所有东西都可以不同动，你需要再在nginx.conf中写一个新的server来绑定static域名。同时，这个server中必须保证：php是不能执行的，同时不能被访问（如果可以被访问，那么php文件会被下载）；所绑定的根目录路径和www的是一样的，也就是说，访问static其实还是访问www，这样，原来所有的静态文件访问地址只需要替换域名，而无需修改uri；添加上面的代理配置，注意，并不是所有的文件类型都通过代理去调用OSS中的资源，例如js、css，就可以直接使用本机上的（当然，如果你觉得不嫌麻烦，或者想统一管理，其实也可以全部静态文件都丢到OSS去，包括js、css）；最后，重载nginx配置，解析static域名到你的服务器IP（这时我们还没有涉及CDN）。</p>
<pre>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;
}</pre>
<p>如果一切顺利，你应该可以使用static域名访问你的静态文件了。但是，如上配置，你得尽快把mp3 mp4 ovg文件上传到OSS上面，而且还得保证url路径和你的网站中使用的url路径是一致的。</p>
<p>接下来的工作，就是把你的网站中的所有原来调用静态文件的地址，修改为static域名对应的url地址，这样，就部署完成了。</p>
<h2 id="title-3">部署CDN提速网站</h2>
<p>为了省钱，我们可以考虑去使用一些效果还可以但免费的CDN（或者收费很便宜的也行）。CDN的部署很简单，我们先注册一个CDN，将上面解析到服务器IP的static域名重新解析到CDN服务商提供的地址，再在CDN后台将源地址IP设置为我们自己的服务器IP。这样就轻松搞定了。</p>
<p>但是，如果你偶尔还要修改css文件，如果直接使用cdn的话，会导致css文件缓存，这不利于及时刷新界面，让访客看到最新的界面效果。解决这个问题是矛盾的，我们又希望得到cdn的提速效果，又希望及时更新文件。如果你必须使用cdn，那么只能使用付费的cdn，它们一般会提供一个api，当你更新文件的时候，可以调用这个api，让cdn主动更新对应的文件。但是，如果你实在不想这么麻烦，干脆直接使用www域名来读取css和js吧，把它们合并后输出，节省宽带，推荐小胖撰写的一篇文章《openresty+Lua+GraphicsMagick进行类似淘宝的图片处理》。</p>
<p>ok，通过本文的讲解，你应该掌握了通过内网获取OSS资源，然后展示在外网的方法了吧。</p>
<p>参考文献：</p>
<ul>
<li><a href="https://help.aliyun.com/knowledge_detail/7609473.html#ECS%E4%B8%8A%E6%90%AD%E5%BB%BA%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E9%80%9A%E8%BF%87%E5%86%85%E7%BD%91%E8%AE%BF%E9%97%AEOSS%E6%9C%8D%E5%8A%A1" name="ECS上搭建反向代理通过内网访问OSS服务" data-spm-anchor-id="5176.777609473.0.0">ECS上搭建反向代理通过内网访问OSS服务</a></li>
<li><a href="http://blog.linsongzheng.com/archives/20.html" target="_blank">openresty+Lua+GraphicsMagick进行类似淘宝的图片处理</a></li>
</ul>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91oss%e5%86%85%e7%bd%91%e5%85%8d%e8%b4%b9%e6%b5%81%e9%87%8f%e5%a4%96%e7%bd%91%e7%94%a8%ef%bc%8c%e6%90%ad%e9%85%8dcdn%e9%95%9c%e5%83%8f%ef%bc%8c%e7%9c%81%e9%92%b1%e6%95%99/">阿里云OSS内网免费流量外网用，搭配CDN镜像，省钱教程</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91oss%e5%86%85%e7%bd%91%e5%85%8d%e8%b4%b9%e6%b5%81%e9%87%8f%e5%a4%96%e7%bd%91%e7%94%a8%ef%bc%8c%e6%90%ad%e9%85%8dcdn%e9%95%9c%e5%83%8f%ef%bc%8c%e7%9c%81%e9%92%b1%e6%95%99/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
