通过查看源站nginx log,发现回源请求量比上周同一天飙升近1000倍,甚至开始怀疑是不是CDN厂商那边出问题了,进一步分析log后发现源站对于CDN的回源请求基本上都是301(Move Permanently)响应,此类响应占了95%以上,301表示永久重定向,这说明绝大部分回源请求都会被源站重定向到另一个地址。
咨询CDN厂商后确认,CDN节点对于源站的301请求默认是不跟随的,即CDN节点不会代为跳转到最终地址并缓存在本地后返回,而是直接返回给客户端301,最终由客户端自行进行301跳转。
那突然飙升的301请求是怎么来的?查看nginx 301请求的path后很快发现所有的CDN图片资源地址的path开头多了一个/,比如http://cdn.demo.com/image/test.jpg 会变成
http://cdn.demo.com//image/test.jpg ,此类请求源站会直接返回301 Location:
http://cdn.demo.com/image/test.jpg ,即要求用户301跳转至去除多余/的版本。
这就产生了一个疑问,印象中源站的文件server是没有这种类似301的处理机制,那这个合并/的操作难道是发生在nginx?然而印象中nginx也没有进行过类似配置。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。