nginx如何根据条件反向代理缓存

yougsn 2014-11-20 12:05:58
公司目前用nginx作反向代理,并用了其缓存功能.
目前是把搜索内容也作缓存,但是有个问题就是,后台搜索索引有延迟,经常会出现某些关键字搜索出来的结果为空,索引更新后就不为空了(这个就不要讨论更好的搜索控制,不缓存搜索内容等等了,现在就是要解决控制这部分缓存)

目前想对这部分内容缓存作控制,找不到什么好方法.
自己知道的nginx缓存判断方法就是url,另外可以使用proxy_cache_valid对http状态码给予不同的缓存时间.由于不想对空结果设置非200http状态码,就不知道如何解决上述问题了.

自己对nginx不太了解,但还是想提出一些想法,不知道是否可以实现:
1.是否可以对空结果 设置一个head头信息,比如 is_cache:no之类的进行判断不缓存,
2.是否可以对空结果返回一个特殊的http状态码,然后 nginx反向代理之后判断这个状态码后更改成200,并且不缓存.

不知道大家是否可以实现上述方法,或者有没有其它更好的解决方法?
...全文
840 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
boonya 2014-12-10
  • 打赏
  • 举报
回复
引用 1 楼 boonya 的回复:
推荐使用Memcached来实现缓存,这个也可以做集群,即Memcached的集群。如果你在应用web内部做缓存还是建议不要做了,Nginx请求转发实际上每次访问的Server很可能是不同的,那么缓存就没法同步。
之前没用过Nginx的缓存,如果不熟悉的话可以考虑我这种方案
boonya 2014-12-10
  • 打赏
  • 举报
回复
推荐使用Memcached来实现缓存,这个也可以做集群,即Memcached的集群。如果你在应用web内部做缓存还是建议不要做了,Nginx请求转发实际上每次访问的Server很可能是不同的,那么缓存就没法同步。

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧