NGINX proxy_pass 无需上游指令即可保持活动状态

NGINX proxy_pass 无需上游指令即可保持活动状态

我有一个配置为动态代理到另一个网络的 nginx,比如ourdomain.com/legacy/otherdomain/443/examplepath?examplearg=examplevalue将映射到otherdomain.legacydomain.com:443/examplepath?examplearg=examplevalue并将ourdomain.com/legacy/yetanotherdomain/123/映射到yetanotherdomain.legacydomain.com:123/。使用此配置,我可以动态代理到我们的旧 VPN,并且在大多数情况下运行良好。它的配置如下proxy_pass https://$legacy_subdomain.legacydomain.com:$new_port/$new_path$is_args$args

但是,nginx 会针对每个请求关闭连接,这对于某些第三方服务器来说会导致巨大的性能损失。不使用 nginx 时需要 3 秒才能加载的网站,使用 nginx 时则需要 30 秒。当然,问题在于 Nginx 无法保持连接处于活动状态。

现在我只发现在使用上游块时可以添加 keepalive。但是,由于我的 Nginx 配置具有动态特性,因此在我的情况下这是不可能的,因为我必须为未知数量的设备和域配置上游块。有没有办法配置 Nginx,使其可以在不使用上游块的情况下保持连接处于活动状态?

相关内容