nginx如何根据条件反向代理缓存
公司目前用nginx作反向代理,并用了其缓存功能.
目前是把搜索内容也作缓存,但是有个问题就是,后台搜索索引有延迟,经常会出现某些关键字搜索出来的结果为空,索引更新后就不为空了(这个就不要讨论更好的搜索控制,不缓存搜索内容等等了,现在就是要解决控制这部分缓存)
目前想对这部分内容缓存作控制,找不到什么好方法.
自己知道的nginx缓存判断方法就是url,另外可以使用proxy_cache_valid对http状态码给予不同的缓存时间.由于不想对空结果设置非200http状态码,就不知道如何解决上述问题了.
自己对nginx不太了解,但还是想提出一些想法,不知道是否可以实现:
1.是否可以对空结果 设置一个head头信息,比如 is_cache:no之类的进行判断不缓存,
2.是否可以对空结果返回一个特殊的http状态码,然后 nginx反向代理之后判断这个状态码后更改成200,并且不缓存.
不知道大家是否可以实现上述方法,或者有没有其它更好的解决方法?