
websocket服务端经nginx代理,刷新页面连接正常,大约经过60秒没有发送消息,websocket自动断开连接,控制台打印错误码为1006。
在经过nginx代理时,nginx会检测超过60秒(默认)没有活动的套接字,并将其断开连接。
一、修改 nginx 代理超时时间
时间根据实际需求配置,单位秒
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
完整配置
location /demo {
proxy_set_header Host $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_pass http://192.168.1.102:8856;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
二、业务层实现心跳检测
定时从客户端向服务器发送心跳数据,来不断刷新剩余超时时间。