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

Posted 莫等、闲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了websocket使用nginx代理后连接频繁打开和关闭相关的知识,希望对你有一定的参考价值。

前几天开发了一个功能,使用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/;

}

恢复正常。

以上是关于websocket使用nginx代理后连接频繁打开和关闭的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 反向代理后 WebSocket 会无法连接的问题

Nginx代理WebSocket方法

使用 nginx 作为 websocket 连接的代理

我应该使用nginx作为WAMP的代理吗?

配置 Nginx 反向代理 WebSocket

通过 nginx websocket 代理连接时 WebApp 崩溃