Web前端资源使用CDN加速,资源的读取和更新该怎么处理
像CSS、JS、img以及静态HTML等资源文件,如果需要放到CDN服务器上
这些资源的路径就不能写死IP,只能写域名
CDN缓存如何通过域名来获取到相应的资源文件?
资源的更新机制又该如何设计?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
像CSS、JS、img以及静态HTML等资源文件,如果需要放到CDN服务器上
这些资源的路径就不能写死IP,只能写域名
CDN缓存如何通过域名来获取到相应的资源文件?
资源的更新机制又该如何设计?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
我说一个简单的CDN实现方式,
BIND(DNS)的view
加varnish(具有反向代理功能的缓存应用)
实现的CDN缓存。当 Client 发起对
www.test.com
的DNS解析的时候。www.test.com
的DNS服务器
可以通过view
来实现不同的网段解析出不同的IP。而这个IP指向的是Varnish Cache Server
,Varnish
可以通过反向代理将用户请求代理到原始服务器
。而它在代理的时候,就需要指明后端backend server(原始服务器)
,可以是一个或者多个,多个可以组成组,组可以用多种调度算法进行调度。而varnish
自身有很强的缓存机制。可以通过配置其vcl
来控制其缓存策略。这样访问到达,缓存有且没有过期。且client 请求报文首部中没有Cache-Control: no-cache
,它就可以直接从缓存中拿数据进行响应。1、CDN缓存如何通过域名来获取到相应的资源文件?
答:CDN缓存自己使用IP进行调度。写域名最主要的原因是解析到缓存服务器。而CDN服务商运行的缓存服务器上面有很多站点的缓存。你不指定域名,谁知道你要命中的 index.html 之类的资源是哪个站点的。
2、资源更新
答:资源更新一般是通过http首部进行控制。
给你一张
varnish
的state engine
图。