一、问题

如果使用nginx代理tomcat等,如果有以下错误日志:

Handshake failed due to invalid Upgrade header: null

二、解决方案

解决方案,在 Nginx ,location 中添加以下代码:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    server {
listen 80;
server_name wno704.top;

error_page 500 502 503 504 /50x.html;

location / {
root html;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
fastcgi_param HTTP_X_FORWARDED_FOR $http_x_forwarded_for;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://blogServer;
}

}