我有一个奇怪的nginxcaching行为。 有2个回应。 第一个已经停止caching,当我更新服务器从1.6到1.8.1,另一个caching像以前一样。 第一个(破碎)有以下响应标题:
允许→GET,HEAD,OPTIONS
连接→保持活动
内容编码→gzip
- DNS – 清除和清除caching之间的区别?
- 我可以在CPU上暂时closures有问题的内核吗?
- DNScaching位于何处? (Server 2003)
- SQL Server 2005和caching
- 如何在Apache / Ubuntu Linux上启用caching?
内容 – 语言→ru
内容types→应用程序/ JSON
date→2016年3月15日星期二07:31:53 GMT
服务器→nginx / 1.8.1
传输编码→分块
变化→ 接受,接受 – 语言,Cookie,接受编码
X-Frame-Options→SAMEORIGIN
另一个响应(按照我的预期工作)有以下标题:
连接→保持活动
内容编码→gzip
内容 – 语言→ru
内容types→应用程序/ JSON
date→2016年3月15日星期二07:32:40 GMT
服务器→nginx / 1.8.1
传输编码→分块
变化→ 接受语言,Cookie,接受编码
X-Frame-Options→SAMEORIGIN
在第一种情况下没有cookie或Accept标头,但是只有
proxy_ignore_headers Vary
保存了这个情况。 它适用于它。 看起来像一些魔术。 但是,什么是错的,我错过了什么? 以下是当前设置:
proxy_pass http://localhost:7050; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; limit_req zone=banka burst=5 nodelay; proxy_cache cache; proxy_cache_valid 5m; proxy_ignore_headers Vary;
不知道你是否修好它,会在这里放下,以防有人需要它。
在Nginx的源代码中,Vary头文件最多使用了42个字符。 在我的情况下,有51个字符,因此我的Vary头被当作Vary处理:*(no-cache)。 设置最大为84固定对我来说。
这篇文章更深入地解释了它。
https://thedotproduct.org/nginx-vary-header-handling/
感谢那个发短文的人。