Nginx proxy_pass,限制活动并发连接数

问题描述 投票:1回答:1

我有一个在低端计算机上运行的服务(在Nginx后面),并且CPU性能相当弱。其中一种API需要大量CPU时间,因此需要限制最大并发请求数。但是,如果请求被缓存,它可以更快地响应。

我想做的是限制发送给特定API的后端服务的最大并发连接数。我研究了limit_reqlimit_conn,但它们都不满足我的情况。 limit_req可能导致高负载(未命中太多)或低负载(当大多数请求都已缓存时),要确定该值并不容易。虽然limit_conn将删除其余请求(我希望将它们排队)。

当前,我正在使用apache2 mpm模块,但它限制了所有请求。

是否可以使Nginx保持最大连接数并让其他连接等待?

nginx rate-limiting nextcloud
1个回答
0
投票

如果许多请求尝试访问完全相同的数据,那么在确实不有用时,可以使用locking mechanism至少防止服务器过载。

proxy_cache_lock on

我不知道针对您情况的另一种解决方案。默认情况下,当N已发送到服务时,保留请求似乎不是一个选项。如果您有多个这样的服务器,则可以将nginx设置为负载平衡器,但这是一个完全不同的概念。

© www.soinside.com 2019 - 2024. All rights reserved.