前幾天開發了一個功能,使用websocket向前台發送消息,與前端聯調時一切正常,但是發布到環境出現如下報錯:
發現404,無法找到連接,突然想到環境上是走nginx代理的,應該是nginx沒有配置代理,於是nginx配置如下:
location /ctm01expvideo-web/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
//新添加
proxy_set_header Upgrade "websocket";
//新添加
proxy_set_header Connection "upgrade";
proxy_pass http://10.194.98.123:36099/ctm01expvideo-web/;
}
上面的配置可以使代理端口支持websocket協議,重啟nginx后404報錯消失,但是又出現如下報錯:
查閱資料后發現是配置有問題,重新修改nginx配置文件:
location /ctm01expvideo-web/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
//新添加
proxy_set_header Upgrade "websocket";
//新添加
proxy_set_header Connection "upgrade";
//新添加
proxy_http_version 1.1;
proxy_pass http://10.194.98.123:36099/ctm01expvideo-web/;
}
恢復正常。