我正在尝试使用 NginX 替代 Apache 作为高负载服务的负载均衡器/反向代理。目前,我已将 Apache 配置为每台代理服务器上最多 1024 个工作程序 - 我有多个工作程序,因此实际容量要高得多。不过,有时同时有超过 n * 1024 个连接,在这种情况下,Apache 会对传入请求进行排队,并在工作程序再次可用时为它们提供服务。
NginX 则不然,如果所有工作进程的连接都已占用,而此时又有连接进来,那么 NginX 将直接拒绝该连接(甚至不会出现 500 错误响应)。有没有办法配置 NginX 以将新请求排队而不是拒绝它?
答案1
不,增加一个 worker 可以处理的连接数量。1024 远远低于 Nginx 可以处理的数量。
如果您需要限制传递给后端的并发请求的数量,那么您需要一个第三方模块,例如:https://github.com/ry/nginx-ey-balancer