【原创】nginx代理websocket出现code 1006连接异常断开的解决方案

blogdaren 2020-06-06 抢沙发 104人次

问题背景:

浏览器发起websocket连接,nginx代理wss间隔一定时间(其实是60秒)后发现浏览器端连接遭到被动端口,console.log显示websocket错误码为:1006

问题原因:

It turns out that Nginx has default timeout of 60 seconds for its connection to the server side. If the back end server does not respond in 60 seconds, Nginx tears down its connection to the server, and further the connection from the client.

解决方案:

增加配置项:proxy_read_timeout 并且将其值根据实际情况调大些。

  location /wss
  {
    proxy_pass http://192.168.1.100:7272;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_read_timeout 3600s;
  }

注意事项:

客户端的心跳时间必须小于proxy_read_timeout的值,不用解释了哈。

版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:【原创】nginx代理websocket出现code 1006连接异常断开的解决方案

发表评论:

您的昵称:
电子邮件:
个人主页: