webSocket推送前端数据,本地开发环境没问题,QA环境报错:
org.springframework.web.socket.server.support.DefaultHandshakeHandler : Handshake failed due to invalid Upgrade header: null
经过比较后发现,QA环境使用nginx反向代理服务器忽略了headers中的:Upgrade:websocket。
解决办法:在 Nginx ,location
中添加以下红色代码:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection
"upgrade"
;
server { listen 80; server_name localhost; client_max_body_size 10240m; location /jk_ers{ proxy_pass http://jkErs/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
使得请求中包含Upgrade。