CDN已成为web服务的标配组件,从用上到用得好,中间还有较长的路径,需要我们不断加深对CDN技术的探索和研究。本文总结了我建站过程中使用七牛CDN遇到的几个问题,关于SEO、鉴权、下载存储文件名、对象存储和CDN的关系等,希望对你有帮助。
SEO
设置了Referer白名单会影响搜索引擎的抓取吗?
问:我只设置了自有站点和本地开发域名的白名单,为了保证搜索引擎抓取收录,是不是要做一些针对性的设置呢?
答:如果设置了空referer,是可以被搜索引擎抓取的。
CDN鉴权是否会影响搜索引擎收录?
问:我需要在内容web页添加CDN链接的图片和pdf文档供下载,希望搜索引擎收录这些资料并关联到我的原始页面。
如果开启鉴权,每次搜索引擎爬取时看到的链接参数都是变化的,这是否会影响其收录,导致资源无法作为单独的项目出现在搜索结果列表中?
如果开启鉴权,只要您的域名没有 robots.txt 文件,就不会影响收录。但由于鉴权参数存在有效期,即使被收录也有可能因为链接过期而不能访问。
鉴权
CDN鉴权的影响范围?
问:如果一个域名开启了鉴权,是不是此域名下所有链接,包括不希望鉴权的css/js资源也必须加上鉴权参数才能访问成功?
答:是的。所有文件都要带鉴权参数访问。
回源
源站为七牛云存储时,还可以配置回源信息吗?
问:我的站点已经手动将很多图片传到七牛云存储了,然后将这个bucket设定为了cdn的源站。现在需要对站点一些未上传过的静态资源自动启用cdn,可以再配置回源信息实现吗,还是必须新开一个域名单独处理此类需求?也就是说,一个cdn域名可以同时使用七牛云存储+自动到站点的回源吗?
答:您好,关于“一个cdn域名可以同时使用七牛云存储+自动到站点的回源吗”,您绑定域名时,源站选择为七牛对象存储空间,即可实现该需求。
问:也就是我的需求需要在“空间配置”那里实现吧?刚看到下面这个:
首先 资源的读取的情况是这样的 客户端访问时候先从 cdn 拉取资源 如果 cdn 存在缓存那么资源直接从 cdn 返回给客户端
其次 客户端从 cdn 没有拉到资源那么就会从七牛的存储空间拉取资源
最后 如果七牛空间和 cdn 都不存在资源那么 客户端就会从客户的源站拉取资源
答:您好,清楚您的需求的。“镜像存储” 功能,应该是完全可以实现您的需求的,您可以通过这篇文档了解下:
关于CDN与对象存储关系的疑问?
问:您好,我想要配置多个站点使用同一个自定义域名的CDN,并且希望这多个站点都可以被自动镜像到同一个bucket,但发现这似乎不可能,请问是这样吗?
我的需求是一个CDN域名为多个站点提供【回源-拉取资料存储-加速】的服务。我想知道是否一个bucket只能有一个镜像源,以及一个CDN只能由一个源站,所以我这个需求无法达成?除非我主动推送这多个站点的相关文件到bucket,否则一个CDN域名无法同时服务多个站?
【一个CDN域名为多个站点提供】这个暂时是不可以的,
一个域名只能设置1个源站,您需要创建多个cdn,然后回不同的站点源才可以
镜像存储在空间上也是只能回一个源,也就是在bucket上只能设置1次
除非您主动推送这多个站点的相关文件到bucket,否则一个CDN域名无法同时服务多个站
1、七牛云CDN可以脱离对象存储使用吗?就是说如果CDN的源站配置为域名或者IP,就无法在后台找到类似对象存储的内容管理那样的页面是吗?这种源站设定是否会自动出现一个相应的bucket,提供已上传内容的管理?
1:是域名回源,源站是你自己的服务器
cdn 可以脱离bucket ,直接选择 【域名回源】或者 【ip回源】,相当于源站就是使用的你们的服务器,这个时候是不会创建bucket的,无法提供内容管理
cdn 的源站如果是bucket的话,那么就是访问bucket中的文件,【提供已上传内容的管理】
2、如果CDN的源站是bucket-a,而bucket-a又设定了镜像源,那么在bucket-a中不存在file-a时,七牛会去镜像源抓取file-a并存放到bucket-a?如果bucket-a和镜像源都不存在file-a,是不是每次请求file-a时,七牛云都会尝试去镜像源抓取?
2:是镜像存储,建立在七牛bucket基础上,
2:镜像存储,拉取资源到七牛空间,访问空间资源实现加速
[cdn会去抓取file-a并存放到bucket-a]
要实现这个,你需要在空间上设置镜像存储,
比如您绑定一个cdn.sz-yijin.com域名在七牛bucket,设置镜像源站 http:// www.sz-yijin.com/
访问 htttp://cdn.sz-yijin.com/web/1.css 的时候,就会去您的源站
http:// www.sz-yijin.com/web/1.css 将资源拉倒七牛七牛空间
然后您在html中引用七牛空间中的静态资源即可
答:您好,您的这两个问题
这边下面给您举个例子
这边建议您先将 www 域名绑定到您的服务器上,不要动
1:【域名回源–全站静态加速】
您在七牛绑定一个其他的二级域名(比如cdn.sz-yijin.com )先用来测试,选择域名回源(源站不要绑定七牛bucket),让七牛域名直接去您的服务器上读取资源到cdn,实现静态资源加速(如果有动态接口,请不要直接全站回源,采用下面的方式)
存储与下载
CDN是否可设置rewrite规则?
问:我希望用户下载cdn上的文件时,可以使用我链接中给定的文件名,而不是CDN中存储的文件名。
刚了解到又拍云上有个叫做边缘规则
的设置项,可以添加rewrite规则,在响应头中指定存储的文件名,但在七牛云CDN的设置项里没有找到类似设置项,请问是否有类似功能设置,有的话在哪里设置?
答:您好,这边 CDN 不可以直接设置 rewrite ,不过可以通过在 url 后加 ?attname= 的形式,来实现您说的需求,详情可以参考:下载设置。
问:您好,我尝试了attname,可能因为中文编码的缘故,实现不了预期的效果:
例如 https://cdn.vps123.top/download/1/1_02_2.pdf?attname=%E6%B5%8B%E8%AF%95.pdf 这个url,用chrome打开,会直接打开为pdf,存储时是原来的文件名【1_02_2.pdf】。用idm下载时,存储名是【utf-8′ ‘测试.pdf】,用wget下载,存储名是【1_02_2.pdf@attname=测试.pdf】,请问是什么原因?
答:您好,这个就是不同客户端编码的问题。这个功能的实现逻辑是改变响应头中的 content-disposition 头,如果使用中文,那么客户端必须要支持 utf-8 编码。
-- EOF --
本文最后修改于6年前 (2019-05-10)