我的配置:
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毫秒的时间。我不知道是什么导致它有时快速关闭。
答案 0 :(得分:1)
您应该从配置中删除lingering_close off;
。
根据{{3}}:
值“off”告诉nginx永远不要等待更多数据并立即关闭连接。此行为会破坏协议,在正常情况下不应使用。
要管理Nginx如何等待代理服务器的响应,请使用: