Websocket 60秒断开,连接不稳定
本地测试都是正常的,线上测试总是过一会就断开...
线上新增了https协议,导致页面中的链接必须也是ssl
Websocket链接地址从ws://ws.xxx.com
改成了wss://ws.xxx.com
最开始http
的配置如下:
server { listen 80; server_name ws.xxx.com; location / { proxy_pass http://127.0.0.1:8110; 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 Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; client_max_body_size 1000m; } }
升级到https
后的ssl
配置:
server { listen 80; listen 443 ssl; server_name ws.xxx.com; ssl_certificate /usr/local/nginx/ws.xxx.com.crt; ssl_certificate_key /usr/local/nginx/ws.xxx.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8110; 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 Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; client_max_body_size 1000m; proxy_read_timeout 360s; } }
线上Nginx新增ssl
代理的时候,没有设置proxy_read_timeout
正确做法应该是proxy_read_timeout
配置大于Websocket
心跳时间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探