背景:本公司的文件服务有两个,一个是传统模式的服务器直接存储文件,通过nginx访问文件。另外一个是直接使用阿里云的oss对象存储。本文的出发点是在传统模式的文件服务中,访问人数较多,造成了服务器宽带占用较大,图片加载慢。而本文讲述了两个解决方案。
通过nginx解决图片加载较慢,连接数较多,宽带占用的问题。可以通过简单配置达到目的,主要配置以下几项内容:
`limit_rate_after 300k;` 单个连接的单个文件前300kb不限速 `limit_rate 300k;` 限制单个连接的下载速度为300kb/s `limit_conn addr 4;` 限制单个连接最多有4个线程,该配置一般不建议使用,因为如果界面上有多个图片需要展示时,该配置会导致部分图 片无法加载。 `limit_req zone=baism burst=5 nodelay;` 在大量请求突然爆发时,可以在baism的缓冲区域中等待,等待区位置有5个,但是我也不建议使用,因为我配置之后 也是图片无法加载。
小结: 也许是我对nginx的基础以及理解不够全面,但是我觉得宽带因素等条件都摆在那里,在同一台文件服务器上也只能是限制客户端的连接来进行优化。所以只是简单做了优化后久没有深化研究,而且我们的文件服务器上的文件也不少。
cdn(Content Delivery Network): 内容分发网络,通过cdn访问文件服务器时,cdn会将文件缓存到cdn服务器,下一次访问该文件时,就直接从cdn的缓存服务器上获取文件,而不需要到文件服务器获取文件。具体的知识介绍可参考百度百科。
阿里云的CDN介绍:内容分发网络(Content Delivery Network,CDN)是建立并覆盖在承载网上,由不同区域的服务器组成的分布式网络。将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。
根据文档中阿里云在国内拥有2300+节点,所有节点均接入万兆网卡,单节点存储容量达40TB1.5PB,带宽负载达到40Gbps200Gbps,具备130Tbps带宽储备能力。所以我们暂时选择了阿里云的CDN。
我们根据阿里云的CDN文档进行配置之后遇到一个问题,cdn的域名配置成功后,在nginx上找不到文件,直接跑出404的异常。后面通过在nginx中增加了一个解析cdn域名执行文件的配置之后文件访问正常。
总结:
如果文件数量不算特别多,访问量不算特别大,可以通过配置本地nginx即可解决部分宽带压力,毕竟这个是不用花钱的。如果访问量下不了,而且宽带压力较大,则直接推荐使用阿里云的CDN服务,配置各种都挺简单。我们的服务器是托管在电信机房,百兆共享宽带,在没有使用CDN之前,每天8:00-00:00这个时间段基本上服务器网络下行速度11M/s,配置CDN之后基本在1-5m/s之间浮动。所以说使用CDN还是能解决一大部分问题。
原文链接:https://blog.csdn.net/qq_15062089/article/details/108289237?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165934461816782390515850%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165934461816782390515850&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-23-108289237-null-null.nonecase&utm_term=%E6%90%AD%E5%BB%BAcdn
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/8062