You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生产环境Nginx下PeerJS服务器WebSocket连接失败求助

问题分析与解决方案

从你提供的信息来看,核心问题出在端口不匹配和PeerServer网络监听配置上,结合Nginx日志里的connect() failed (111: Unknown error),直接导致Nginx无法连接到PeerJS后端服务,进而引发WebSocket连接失败。以下是具体修复步骤:


1. 修复端口不匹配问题

你的PeerServer配置中端口为process.env.PEER_PORT || 3001,但Nginx的proxy_pass指向了http://localhost:5005/peerjs,两者端口完全不一致,这是Nginx连不上后端的直接原因。

修改Nginx配置:将proxy_pass的端口改为PeerServer实际使用的端口(比如默认的3001):

location /peerjs {
    proxy_pass http://localhost:3001/peerjs; # 端口与PeerServer保持一致
    # 其他配置保留
}

2. 调整PeerServer监听配置

PeerServer当前设置host: 'localhost',这意味着它只接受本地进程的访问,Nginx作为反向代理无法连接到它。同时不需要给PeerServer配置SSL(Nginx已经做了SSL终止,后端用HTTP即可)。

修改PeerServer.mjs:

import 'dotenv/config'
import { PeerServer } from 'peer'
import { jwtVerify } from 'jose'

const serverConfig = {
  port: Number(process.env.PEER_PORT || 3001),
  path: '/peerjs',
  host: '0.0.0.0', // 改为0.0.0.0,允许外部(Nginx)访问
  allow_discovery: true,
}

// 其余代码保留...

3. 完善Nginx的WebSocket代理配置

添加必要的请求头和长连接超时设置,避免WebSocket连接被过早断开:

location /peerjs {
    proxy_pass http://localhost:3001/peerjs;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    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;
    # WebSocket长连接超时配置
    proxy_connect_timeout 7d;
    proxy_send_timeout 7d;
    proxy_read_timeout 7d;
}

4. 补充客户端连接配置

明确指定secure: true和path: '/peerjs',确保客户端正确发起WSS请求:

this.peer = new Peer(this.manager.user.uuid, {
  token: accessToken,
  host: 'ps.mydomain.com',
  port: 443,
  secure: true, // 启用SSL模式
  path: '/peerjs' // 指定PeerJS服务路径
})

验证步骤

  1. 重启PeerServer服务,确保它监听在0.0.0.0:3001
  2. 重启Nginx:sudo systemctl restart nginx
  3. 测试后端连通性:curl http://localhost:3001/peerjs,应返回PeerServer的JSON响应
  4. 重新测试客户端的WebSocket连接

内容的提问来源于stack exchange,提问作者user3331344

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:16:05