解决nginx到后端服务器Connection: close问题

时间:2024-02-19 16:07:29

以下是官方原文:

  By default, NGINX redefines two header fields in proxied requests, “Host” and “Connection”, and eliminates the header fields whose values are empty strings. “Host” is set to the $proxy_host variable, and “Connection” is set to close.

而且 其中一个配置:

Syntax:    proxy_http_version 1.0 | 1.1;
Default:    proxy_http_version 1.0;
Context:    http, server, location
This directive appeared in version 1.1.4.

所以其实 nginx 到后端 例如 tomcat 之间的连接是 http1.0的协议 

所以解决 方法很简单:

upstream http_backend {
    server 127.0.0.1:8080;
}

server {
    ...

    location /http/ {
        proxy_pass http://http_backend;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        ...
    }
}