最近,在市场部门的努力下,公司的产品终于赢来一大波用户的涌入,接踵而来的有对网络服务的压力,因为是单台服务器在跑,并且用户都是在下午至晚上的高峰期访问,过度集中,导致服务器压力巨大,有的功能甚至不能正常使用,因而很有必要针对当前状态做优化。
![](https://img.haomeiwen.com/i3168242/4a86120175f5741e.png)
累计用户数
一、 解决思路
产品的主要载体是一个 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 服务
![](https://img.haomeiwen.com/i3168242/1a99f19c5baccd3a.png)
![](https://img.haomeiwen.com/i3168242/6be0039ab8522643.png)
具体的配置过程官网都有挺多说明,入门手册 ,我就不一一叙述了。
结果就是,本来是 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/
![](https://img.haomeiwen.com/i3168242/dbb54694e618df16.png)
上图是我在服务器的配置指令,只针对图片来坐重定向,下面检测效果,所有的图片请求都可以正常的转到 CDN 地址去访问,bingo!
![](https://img.haomeiwen.com/i3168242/90decf289fd3ef4e.png)
3.数据库的连接数优化
这个就关系到 H5页面的代码编写的优化了,没办法具体交待,一句话总结就是:动笔前多思考。
三、总结:
CDN 服务器开启前后对比,看来代码还有有很大的改善空间,但起码流量上判断,对服务器的静态资源获取压力已经减少了许多。
![](https://img.haomeiwen.com/i3168242/d179a8ac4aed6538.png)
但是也有个弊端就是,CDN 流量开启后就像脱缰的野马,两天半就跑了25G 多的流量,平均一天10G,每个字节都是钱呀,看着心疼。
![](https://img.haomeiwen.com/i3168242/7e55a6954b77c5af.png)
网友评论