CDN 加速,一天10个 G

最近,在市场部门的努力下,公司的产品终于赢来一大波用户的涌入,接踵而来的有对网络服务的压力,因为是单台服务器在跑,并且用户都是在下午至晚上的高峰期访问,过度集中,导致服务器压力巨大,有的功能甚至不能正常使用,因而很有必要针对当前状态做优化。


累计用户数

一、 解决思路

产品的主要载体是一个 APP,但是因为集中引爆使用的是内嵌的 H5活动页面,经过高峰时段的检测,服务的压力主要表现为 数据库的 cpu 占比超高以及 Apache 服务进程过多,再进一步分析:

1. H5 页面需要建立过多的网络请求获取资源;

2. H5 页面的动态数据获取对数据库访问次数过多;

待解决的方式有:

1. Web 服务器采取更加高效的服务器,如 apache 更换为 Nginx 【待定方案,短期服务器更换不便】

2. 所有的静态资源在不更换存储服务器的情况下,采取 CDN 加速  【采纳】

    2.1  H5页面的 css、js、image 文件可以直接才用 CDN 域名更换;【采纳】

    2.2 已经上架的 APP ,有个讨论区和资讯内容的图片因为地址是本地拼接的,不可以动态更换地址,得专门针对同一个域名请求的图片数据做重定向【采纳】。

3. H5页面的动态数据获取功能代码优化,减少数据库连接数 【采纳】

4. 数据库主从备份,公司内部运营人员统计数据走从服务器,减少对主服务器的压力【采纳,具体参考 《数据库优化之一 -- Mysql 主从备份》】



二、解决步骤

1. H5页面静态资源加速

因为服务器用的是阿里云的 ECS 服务器,所以简单入手先采用的是阿里云的 CDN 服务


服务器情况


流量包价格

具体的配置过程官网都有挺多说明,入门手册 ,我就不一一叙述了。

结果就是,本来是 www.abc.com下访问的资源也可以通过 cdn.abc.com 来访问,这样将 H5页面里边所有的 js,css,image 文件地址都更换为 cdn.abc.com 下来访问即可。当第一次访问资源时候需要占用 主服务器的性能,然后就会缓存到CDN 服务器下,接下来的请求都不需要和主服务器打交道,大大减轻 H5页面的静态资源访问对服务器产生的压力,并且能以更好的本地CDN 网络来服务用户,提高下载速度。


2.  APP 内讨论区和资讯文章的图片素材加速

刚刚提到了,APP 内的通过 API 请求下来的图片都是相对地址的,然后APP 本地拼接 URL 再来请求资源,就导致了无法在API 直接输出 CDN 地址来达到加速的目的。因而才有了 Apache 的 mod_rewrite 模块的重定向功能,将网络请求的图片资源做重定向,定向到新的 CDN 地址,就可以实现加速。

这里说一下为什么不全站内容都做重定向,因为 API 的内容都是动态输出的,得保证实时性,所以坐重定向后还是要动态计算得到内容输出,就没有必要画蛇添足了,只有图片资源是固定 URL 的,将其添加到 CDN 服务可以有效的减轻服务器的响应压力。

Apache 服务器打开 mod_rewrite模块后,是通过读取根目录的 .htaccess文件内容来实现url 请求的匹配规则,具体操作步骤学习入门可以参考链接:

https://devops.profitbricks.com/tutorials/install-and-configure-mod_rewrite-for-apache-on-centos-7/


.htaccess 配置

上图是我在服务器的配置指令,只针对图片来坐重定向,下面检测效果,所有的图片请求都可以正常的转到 CDN 地址去访问,bingo!

效果

3.数据库的连接数优化

这个就关系到 H5页面的代码编写的优化了,没办法具体交待,一句话总结就是:动笔前多思考。



三、总结:

CDN 服务器开启前后对比,看来代码还有有很大的改善空间,但起码流量上判断,对服务器的静态资源获取压力已经减少了许多。

CDN 服务开启前和后对比,CPU 压力变化不大,流出带宽变化大,都跑 CDN 流量去了 


但是也有个弊端就是,CDN 流量开启后就像脱缰的野马,两天半就跑了25G 多的流量,平均一天10G,每个字节都是钱呀,看着心疼。

流量统计
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容

  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 8,348评论 6 152
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,070评论 25 707
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,472评论 1 19
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,656评论 9 163
  • 我不记得在哪里看到过这样一句话“要么读书,要么旅行,身体和灵魂,必须有一个在路上。”去百度了一下,这句话源自《罗马...
    黑龙江冷月阅读 280评论 4 0