浏览 1.6k
用proxy_cache_path创建了一个缓存,然后在客户端通过curl -H "Cache-Control: no-cache" http://10.234.70.103:2048/index.html来模拟请求。
结果发现nginx每次还是使用缓存数据发给客户端。我的理解是在http请求头部加入Cache-Control: no-cache是要告诉代理服务器不要用缓存数据,为什么nginx还是会使用缓存数据来响应客户端呢?
按点赞数排序
按时间排序
no-cache在请求头部时,是告诉代理服务器,不能直接使用已有缓存作为响应返回,除非带着缓存条件到上游服务端得到 304 验证返回码才可使用现有缓存。cache-control在请求头部中的意义有点反直觉,你可以看下我的这一节视频课:https://time.geekbang.org/course/detail/175-99534
0
回答于2021-01-05 08:34
多谢陶老师。 我又在nginx服务器上抓包看了一下。 Nginx还是直接把本地的缓存发给了客户端,并没有先去上游服务器确认再发送。是我哪个地方配置不对吗?
多谢!
0
回答于2021-01-05 01:19
反向代理用来隐藏服务器细节,作为负载均衡就能组建分布式集群,提供容灾、高可伸缩性等;
正向代理用来隐藏客户端细节,比如翻墙、跳转机访问、隐藏IP地址等。