问题描述
我正在使用Nginx反向代理来缓存来自两个端点的内容,其中之一非常可靠;另一个经常超时。
我发现这些超时有时会耗尽所有可用的连接或导致其他问题,从而降低整个服务器的性能,并导致可靠端点的延迟增加。
我已经调整了一些设置(worker_rlimit_nofile,worker_connections),但是我真正想做的是尽可能地隔离两个端点的缓存和连接:给每个共享一个可用缓存,共享可用连接,并且就像它们碰到两个单独的服务器一样工作,以减少一个端点的问题影响另一个端点的性能的可能性。
如果我要创建两个位置块,每个端点一个,是否可以指定每个块在缓存中的份额(例如文件数或总大小)以及可用连接的份额?
或者,有一个更好的方法可以实现隔离目标,以确保良好端点的可靠性能,即使不良端点经历了很多超时?
解决方法
大多数proxy_cache_*
指令可以特定于位置块,并且可以使您做到这一点。
https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache
如果提供了一个示例配置来反映您当前的工作,它也可能帮助其他人回答。