【发布时间】:2016-03-25 04:07:30
【问题描述】:
我正在开发一个网站,我在生产环境中设置了以下结构:
NGINX(监听 443,proxy_pass)-> Varnish(监听 80)-> NGINX(监听 8080)。
所以我可以通过 https 缓存内容提供服务。
问题是我注意到 google crome 没有缓存通过 SSL 提供的本地内容(Firefox 会)
当我指向 80 端口时,Firefox 和 Chrome 都会缓存内容,但 chrome 在尝试 443 时不会缓存。
这些是我为测试图像获取的标题:
通过 HTTP 服务
接受范围:字节
年龄:28
缓存控制:max-age=31536000
内容长度:190667
内容类型:图片/jpeg
日期:格林威治标准时间 2015 年 12 月 18 日星期五 12:06:49
ETag:"5673f678-2e8cb"
到期时间:2016 年 12 月 17 日星期六 12:06:49 GMT
最后修改时间:格林威治标准时间 2015 年 12 月 18 日星期五 12:05:12
由 HTTPS 提供服务
接受范围:字节
年龄:74
缓存控制:max-age=31536000
连接:保持活动状态
内容长度:190667
内容类型:图片/jpeg
日期:格林威治标准时间 2015 年 12 月 18 日星期五 12:19:34
ETag:"5673f678-2e8cb"
到期时间:2016 年 12 月 17 日星期六 12:06:49 GMT
最后修改时间:格林威治标准时间 2015 年 12 月 18 日星期五 12:05:12
任何人都知道这是否可能是我的服务器的配置问题,或者可能是 Chrome 处理 SSL 连接的正常方式?
谢谢
【问题讨论】:
-
你检查过其他 ssl 服务器吗?
-
你认为这可能是因为 nginx 生成的“Connection:keep-alive”标头吗?
-
我的意思是,检查别人的服务器,比如
google.com。你怎么知道,那个 chrome 没有缓存? -
啊!好的..我甚至通过 SSL 尝试使用 stackoverflow 和 chrome 缓存内容。所以它必须与mi conf有关......我想一些关于keep-alive连接头的东西。但是没有办法在nginx中禁用它
-
我用 chrome 开发工具 (F12) 检查了它没有缓存。
标签: google-chrome ssl nginx https varnish