Nginx反向代理保持打开大多数连接仅超过1秒?

时间:2017-05-23 17:24:26

标签: nginx

我的配置:

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保持连接开放。我怎样才能弄清楚连接是什么以及如何尽可能快地关闭它?

似乎只有在蓝色月亮中,一旦Go服务完成,nginx将决定关闭,并且我将在Chrome中显示20-40毫秒的时间。我不知道是什么导致它有时快速关闭。

1 个答案:

答案 0 :(得分:1)

您应该从配置中删除lingering_close off;。 根据{{​​3}}:

  

值“off”告诉nginx永远不要等待更多数据并立即关闭连接。此行为会破坏协议,在正常情况下不应使用。

要管理Nginx如何等待代理服务器的响应,请使用: