Nginx反向代理可以隔离每个端点的缓存吗?

问题描述

我正在使用Nginx反向代理来缓存来自两个端点的内容,其中之一非常可靠;另一个经常超时。

我发现这些超时有时会耗尽所有可用的连接或导致其他问题,从而降低整个服务器的性能,并导致可靠端点的延迟增加

我已经调整了一些设置(worker_rlimit_nofile,worker_connections),但是我真正想做的是尽可能地隔离两个端点的缓存和连接:给每个共享一个可用缓存,共享可用连接,并且就像它们碰到两个单独的服务器一样工作,以减少一个端点的问题影响另一个端点的性能的可能性。

如果我要创建两个位置块,每个端点一个,是否可以指定每个块在缓存中的份额(例如文件数或总大小)以及可用连接的份额?

或者,有一个更好的方法可以实现隔离目标,以确保良好端点的可靠性能,即使不良端点经历了很多超时?

解决方法

大多数proxy_cache_*指令可以特定于位置块,并且可以使您做到这一点。

https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache

如果提供了一个示例配置来反映您当前的工作,它也可能帮助其他人回答。