如何实现网站文件动静分离

news/2024/5/19 2:26:51/文章来源:https://blog.csdn.net/weixin_30567225/article/details/98071125

背景

传统动静不分离的产品架构,随着访问量在增长,性能会成为瓶颈。以一个常见的Web站点为例。www.acar.com是一个刚建立汽车资讯车友交流网站,主站用Php搭建,有10GB的图片素材,部分JS文件。目前购买一台ECS放置所有程序代码,并在ECS上安装MySQL数据库。随着用户访问量的不断增长,不少用户反映,访问网站的速度越来越慢,图片加载慢,网站响应慢,同时网站技术人员也发现用户上传的图片越来越多,快超过1TB了。在这种情况下,用户可以通过利用OSS和CDN对网站进行架构优化,做到网站文件的动静分离的,提升用户访问体验,实现成本可控。

网站动静分离架构

5e7843355e32650ee2257fed83f5030041c68759

在该架构中,OSS作为海量文件存储源,静态图片、视频文件、下载包、App更新包等均放在OSS,同时OSS作为CDN的源站,通过CDN加速分发,用户通过CDN节点就近获得文件。

该架构优势十分明显:

 

  • 降低Web服务器负载,静态文件访问负载全部通过CDN;
  • 存储费用最低,OSS的存储费用仅为ECS磁盘费用的50%;
  • 海量存储空间,无需考虑存储架构升级;
  • 流量费用低,相比直接通过OSS访问,除极少额外增加的回源流量外,主要流量使用CDN流量,单价最低只需0.26GB,远远低于OSS直接访问的外网流量单价。

 

具体操作步骤

第一步:对ECS上的网站程序进行整理,把动态程序部分和静态部分分不同的目录管理起来:

 

  • 建立Images目录,放置所有网站高清素材图片;
  • 建立Javascript目录,放置所有的JS脚本;
  • 建立Attachment目录,放置所有用户上传的图片和附件。

 

第二步:进入到OSS控制台,点击“CDN加速OSS”。

fb33fff01d336f00d2b557e7b620d1a76fbf2497

 

  • 选择新建Bucket。根据你ECS所在的区域选择Bucket所在区域,权限选择“公共读”,Bucket名称与ECS上新建的目录的名称对应,比如”acar-image-bucket“,选择下一步;
  • 输入“image.acar.com”作为您网站高清素材图片的加速域名后,点击下一步;
  • 选择默认的自动添加阿里云解析,点击完成。

 

第三步:点击“立即上传文件,体验加速效果”。

 

  • 把您在第一步中建立在ECS上的Images目录下的所有图片文件上传到这里(acar-image-bucket下),您可以使用OSS客户端工具更加方便灵活的完成图片的上传(OSS客户端工具Windwos版本);
  • 点击列表中已经上传文件的“获取地址”,您就能获取到该文件的CDN加速的访问地址,通常为“您输入的加速域名+'/'+'文件名'”的格式;
  • 逐一完成图片文件的上传。

 

8a3fd0a5acc0cac4a556ed2972779032692526f7

3242e97446c1f8860acc6d20aa62b791d51bc516

06a46abdb1cc9152c46d98aeaf655abc5351f58f

第四步:按照前三步的示意,把其他两个文件也通过“CDN加速OSS”的方式上传,分别建立“acar-js-bucket”和"acar-csimages-bucket"两个使用CDN加速的OSSbucket。

第五步:在原本ECS系统中,找到原本访问静态文件的代码,把访问URL修改为加速访问的地址。

大功告成,以后用户访问您的网站的静态文件就全部通过OSS+CDN的方式访问,不再占用您ECS的资源。

需要注意的是,如果您想把用户上传的文件自动同步到“acar-csimages-bucket”中,您可以参考OSS相关SDK和API的PutObjcet部分,实现代码级别自动上传。

注意事项

 

  •  OSS是以Bucket为单位设置CDN加速,您最好为每个Bucket指定一个二级域名,方便管理;
  •  您可以通过OSS一键加速配置,静态文件的OSS和CDN的相关配置(CDN加速OSS点击这里);
  •  用户第一次访问静态资源,会先回源OSS获取资源再推送到CDN,需要大概5分钟左右的生效时间。您可以在更新资源后,通过刷新的方式,让CDN主动回源,让用户访问时不再等待。

 

相关资料

各区域的OSS访问地址

OSS客户端工具Windwos版本

客户端工具,支持文件夹上传,支持大文件自动分片多线程上传、支持批量删除、支持批量设置。

OSS客户端工具Mac版本

客户端工具,支持文件夹上传,支持大文件自动分片多线程上传、支持批量删除、支持批量设置。

CDN管理控制台

网页版本控制台,方便您进行管理设置和简单的文件管理。

 

转载:https://yq.aliyun.com/articles/60018

转载于:https://www.cnblogs.com/tianciliangen/p/8349990.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_703556.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自学python推荐书籍同时找哪些来实践-Python学习路上有这些论坛、网站、书籍与你同行...

Python学习路上有这些论坛、网站、书籍与你同行 2019-05-03 18:24:41 613点赞 9508收藏 164评论 创作立场声明:希望我的一些经验可以给你少走一些弯路,但人总得走点弯路才可以成长。别怕,在学习python的路上有我陪着你。人生苦短,…

java用nat123_「网速123」使用nat123怎样解决网速慢的问题? - seo实验室

网速123许多人在使用Nat123时会遇到网速慢的问题,下面就来说说相关的解决方法。1、cname正确指向。cname指向的唯一性。使用自己的域名时,如设置cname指向nat123的,确保cname的唯一性,不对应的cname指向解析慢或其他不可预知的问题…

怎么在python下载网站内容-分析某网站,并利用python自动登陆该网站,下载网站内容...

本帖最后由 愤怒的小车 于 2019-5-8 09:41 编辑 一:本代码是我研究了好久才写出来,七功能主要有自动登陆、自动识别验证码、以及自动识别下载格式进行判断下载! 首先,搬上我们的主角网址,http://lavteam.org/&#xff…

python爬虫怎么爬同一个网站的多页数据-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...

原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面…

高性能网站原则

https://blog.csdn.net/u011650048/article/details/51754423 1、图片压缩: 静态页面验收时,检查每张图片不能超过200K,每个页面不能超过2.5M CMS后台上传图片,检查每张图片不能超过200K,尽量不要使用原图,…

python从入门到入土表情包-Python开发个人专属表情包网站,表情在手,天下我有...

"表情包”是一种利用图片来表示感情的一种方式。表情包是在社交软件活跃之后,形成的一种流行文化,表情包流行于互联网上面,基本人人都会发表情。 曾经你是否也有过找不到表情包去应对别人的时候。 今天小编分享如何用Python开发个人专属…

让你的网站在IE8的兼容模式下运行

众所周知,微软的Internet Explorer团队一直在致力于将IE8打造为最符合业内标准的浏览器,所不幸的是,当前并非所有的网站都认同这些标准。如果你担心你的网站在IE8的标准模式下不能正常工作的话,下面这些方法也许对你有所帮助&…

某个网站打不开,其他网站正常的原因及解决办法

检测网站是否适应了cdn加速,可以在命令行中输入nslookup ip地址(nslookup http://www.360doc.com)如果address的值是多个,就证明使用了cdn加速。 可以使用cdn检测工具检测各地使用cdn加速后网络情况。同时如果全国不同地区访问节点…

技术文章精美配图模板网站推荐-创客贴

最近上海的风景很好,有清晨的微风、有蓝天白云,小编被大好河山迷住了,只顾着欣赏美景佳人,今天开始上班,把思绪和心情收回来,得花一些时间来写写东西,记录记录生活。 我经常逛知乎,也…

网站后台管理界面设计的一些想法

一、最常见的网站后台管理的界面布局 1.头部 2.菜单 3.主要工作区域 4.底部 二、工作区的交互设计 后台操作管理的主要工作区域在图示的区域3,古老的网站后台管理程序中,区域3被设计成一次只能展示一个页面。而现在的流行做法是区域3是多Tab的&#xff0…

legend3---阿里云如何多个域名指向同一个网站

legend3---阿里云如何多个域名指向同一个网站 一、总结 一句话总结: 先寻求资料及文档,没有找到的话自己摸索一下就好 结论:多个域名都需要备案 二、阿里云如何多个域名指向同一个网站 当前情况 一个域名(fanrenyi.com&#xff09…

如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面,该网页如下:实现代码如下: import urllib.request def getHtml(url): html urllib.request.urlopen(url).read…

如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

我们可以用Python来将一个网页保存为本地的HTML文件,这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面,该网页如下:实现代码如下: import urllib.request def getHtml(url): html urllib.request.urlopen(url).read…

Slog64_项目上线之ArthurSlog个人网站上线3

ArthurSlogSLog-64Year1GuangzhouChinaSeptember 9th 2018ArthurSlog PageGitHubNPM Package Page掘金主页简书主页segmentfault多言数穷 不如守中 开发环境MacOS(High Sierra 10.13.5) 需要的信息和信息源: 开始编码 本篇配置服务端环境网站的源码已经传送至服务器…

几个值得收藏的国外有关Vue.js网站

鄙人瞎逛瞎搞,轻轻地收藏几个有关Vue.js的网站; 这暂且不是最好的也不是最全的网站采集处。 往后会慢慢健全起来的 ~^o^~ (^-^) (^o^) 。 想了解更多 戳我试试 (^ิ∀^ิ) (๑˜้ีз˜้ี) (((΄◞ิ(΄◞ิ(΄◞ิ౪◟ิ‘)◟ิ‘)◟ิ‘))) 一、Vu…

ASP.NET 快乐建站系列 -- 1. 十五分钟建立精美网站

这几年帮几个北美的中大型客户建立他们的企业站点,摆在眼前的一个重要问题就是CMS(内容管理系统)。 在过去几年间,很多ASP.net CMS平台被建立起来,优秀的不但存活下来而且功能日益强大,或者说只有日益强大才…

网站jcms流程分析

本实例大致流程:基于jsp页面,通过servlet传递数据调用方法,利用service更改数据库.本文重点分析的是其中的两个小方法add()和delete(),来反映出反射机制的一个具体作用:减少Servlet文件的个数. 利用反射减少Servlet文件个数的步骤:  1 必须对每次请求进行标示,表示这个动作…

自学python推荐书籍同时找哪些来实践-Python学习路上有这些论坛、网站、书籍与你同行...

Python学习路上有这些论坛、网站、书籍与你同行 2019-05-03 18:24:41 613点赞 9508收藏 164评论 创作立场声明:希望我的一些经验可以给你少走一些弯路,但人总得走点弯路才可以成长。别怕,在学习python的路上有我陪着你。人生苦短,…

怎么在python下载网站内容-分析某网站,并利用python自动登陆该网站,下载网站内容...

本帖最后由 愤怒的小车 于 2019-5-8 09:41 编辑 一:本代码是我研究了好久才写出来,七功能主要有自动登陆、自动识别验证码、以及自动识别下载格式进行判断下载! 首先,搬上我们的主角网址,http://lavteam.org/&#xff…

网站漏洞修复公司处理网站被篡改跳转到其他网站的解决办法

2019独角兽企业重金招聘Python工程师标准>>> 某一客户单位的网站首页被篡改,并收到网监的通知说是网站有漏洞,接到上级部门的信息安全整改通报,贵单位网站被植入木马文件,导致网站首页篡改跳转到caipiao网站&#xff0…