刚换了新的公司,好像天天都听到“回源”的字眼,不懂怎么回事,上网搜了一把,正巧看到了story的天空写的这篇博客,转载下来,也给本身长点见识。ios
下面是博客原文:nginx
咱们有一台服务器提供的服务主要是以动态页面为主,静态页面都是固定的内容平时更新的不多,最近这台服务器的应用升级到了新版本访问量增大了很多,随之的 问题就来了,最近天天一到9点负载就超过警惕值,而后负载持续升高,load的值最高到100左右,这种状况一直会持续到12点,一过12点负载立刻下降 到5如下。
经过分析网络链接发现并无***的迹象,基本都是正常的访问。后来开始考虑是不是硬件性能形成的,查看 cpu 内存和磁盘io的问题,观察了一段时间后发现这几个设备的压力确实增大了,但却没到不能承受的地步。后来我开始对nginx的访问日志开始分析,集中分析 9~12点的访问状况。
通过分析发现有10多个ip的请求量在9点忽然增长,到11点半之后请求数就将的很低了。并且他们的请求基本都是静态请求。我开始的时候怀疑是***可是又 一想,会不会这几个ip是咱们的CDN提供商的地址,因而立刻联系CDN的技术支持,一查果真这几个ip都是他们分布在全国各地的服务器的ip,仔细询问 后才知道。
他们如今服务器的回源机制是分散回源,也就是说全国各地的服务器每隔一段时间后会本身去咱们的服务器上检查更新。可能最近有过改动因此这些服务器都在9点 到10点之间一块儿去那台服务器上检查更新。结果就是那些ip访问量激增... 我又询问了下他们回源的间隔时间,工程师跟我说如今是定在3小时。我当时一愣 每隔三小时全国几十台服务器都去咱们那台服务器上查一遍,负载能不高么...
当即让他们修改回源策略,由于咱们的静态内容好久才会更新一次,并且每次更新都是手动更新,平时基本用不着更新,因此也用不着cdn的服务器老是去检查。
开始对回源的时间和回源方式与CDN的工程师讨论,最后的解决方法是,在全部CDN的服务器里找出三台来作回源点,其余的机器都去这三台服务器上去检查更新,
而这三台服务器每隔三天会到咱们的服务器上检查更新。肯定了以后,就让他们的工程师去改策略了。不一下子他们说改好了,但要等次日才能生效,让我等到时候看效果。
到了次日9点,果真Nagios 没有报警,系统load值正常直到天天中午 访问最高的时候才有一点高,看来新改的策略生效了。从日志上看 CDN的那几个地址的访问量也不那么高了。
CDN原本是给咱们的网站加速的,可是有时会由于不合适的回源策略给服务器带来负担,只有选择正确的策略才能给本身的网站带来更高的访问效率!
但愿这篇文章对你们有所帮助 ^_^服务器