我们使用Nginx作为反向代理。从过去的8-9个月开始,我们面临着一个问题,在这个问题中,nginx 500的响应出现了激增。我们没有看到任何往上游的电话。似乎Nginx缓存了500个响应,并且我们向用户提供了服务。每次问题发生时我们都要重新启动Nginx。
根据Nginx文档,默认情况下nginx缓存200、301和302响应代码,但我们注意到,如果上游服务器提供错误400、500或503等,响应将被缓存,所有其他对同一文件的请求都会被击中。
尽管我们设置了proxy_cache_valid来指定响应代码(比如proxy_cache_valid 200,15m;),但是它也缓存错误响应代码,但在这种情况下不缓存301 & 302。为什么不应用同样的错误响应代码。
请建议解决这个问题。
谢谢,
发布于 2022-01-07 10:52:14
试着使用:
proxy_intercept_errors on;
在nginx配置中。它应进一步通过>300错误。
https://stackoverflow.com/questions/68126909
复制相似问题