websocket使用nginx代理后连接频繁打开和关闭

woniyu 2020-05-14

前几天开发了一个功能,使用websocket向前台发送消息,与前端联调时一切正常,但是发布到环境出现如下报错:

websocket使用nginx代理后连接频繁打开和关闭

发现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报错消失,但是又出现如下报错:

websocket使用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_http_version 1.1;

        proxy_pass http://10.194.98.123:36099/ctm01expvideo-web/;

}

恢复正常。

相关推荐