博客
关于我
HTTP报文头加上Vary让CDN缓存不同版本
阅读量:407 次
发布时间:2019-03-06

本文共 572 字,大约阅读时间需要 1 分钟。

CDN通常是针对路径来做的缓存,例如当我们访问页面https://xxx.com/a/b/c.html的时候,一般是针对/a/b/c.html做的缓存,也就是每个人看到的/a/b/c.html页面都是一样的

但是,通常我们在手机端和PC端看到的页面其实是有区别的,在我们的页面都有不同版本的情况下,CDN如何知道缓存那个版本呢?它是无法预测用户是来自移动端,还是来自PC端的。

这时候就得再添加一个User-Agent判断了,HTTP头中的Vary就是干这个的!意思就是告诉除了路径,还要加上其他的选项做缓存。

nginx配置示例

server {  server_name localhost;  listen 80;  gzip_static on;  # root /var/www/html/public;  location ~ ^/.*\.(txt|js|js\.map|css|jpg|png|gif|exe|ico) {    root /var/www/html/app/public;    expires max;  }  # 添加header代理告诉CDN走不同的缓存  add_header Vary "User-Agent";}

针对特殊需求,还可以加入其他的标识,例如:Accept-Encoding、Cookie

转载地址:http://mzlkz.baihongyu.com/

你可能感兴趣的文章
python-day3 for语句完整使用
查看>>
ButterKnife使用问题
查看>>
为什么讨厌所谓仿生AI的说法
查看>>
ORACLE 客户端工具
查看>>
基于LabVIEW的入门指南
查看>>
weblogic之cve-2015-4852
查看>>
Java注释
查看>>
C++ 函数重载
查看>>
使用mybatis-generator生成底层
查看>>
Mybatis【5】-- Mybatis多种增删改查那些你会了么?
查看>>
计算输入的一句英文语句中单词数
查看>>
lvs+keepalive构建高可用集群
查看>>
6 个 Linux 运维典型问题
查看>>
Failed to get D-Bus connection: Operation not permitted解决
查看>>
取消vim打开文件全是黄色方法
查看>>
一个系统部署多个tomcat实例
查看>>
HP服务器设置iLO
查看>>
从头实现一个WPF条形图
查看>>
使用QT实现一个简单的登陆对话框(纯代码实现C++)
查看>>
QT :warning LNK4042: 对象被多次指定;已忽略多余的指定
查看>>