以下是官方原文:
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 ""; ... } }
