Nginx 反向代理保持打开所有连接仅 1 秒多一点?

Nginx 反向代理保持打开所有连接仅 1 秒多一点?

我的配置:

upstream api-backend {
        server localhost:9005;
}

server {
        listen 80;

        lingering_close off;

        root /var/www/html;
        index index.html;

        location /api/ {
                proxy_http_version 1.1;
                proxy_set_header Connection "";
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT';
                proxy_pass      http://api-backend/;
        }

        location / {
                expires off;
                try_files $uri $uri/ =404;
        }
}

我正在提供 /var/www/html 中的文件,并且 /api 端点转发到 Go 服务。Go 服务在几毫秒内完成请求,但 Chrome 的网络选项卡报告所有请求所用的时间都比 1 秒长几毫秒。

我相信是 Nginx 使连接保持打开状态。我如何才能找出是什么使连接保持活动状态以及如何尽快关闭它?

答案1

我可能会先keepalive_disable,可以在 http、服务器或位置级别进行。但是,默认值为 75 秒,因此这可能无法解决问题。

此 keepalive 是否会阻止客户端接收数据?您可以发布 Chrome 网络选项卡的屏幕截图并描述您遇到的问题吗?

Keepalive 是总体来说是一件好事。它们可以避免在再次请求数据时必须重新建立连接的开销。如果这不会造成问题,我就不会这样做。

相关内容