AWS Lightsail部署RTCMultiConnection-Server公网IP/域名访问报400错误
AWS Lightsail部署RTCMultiConnection-Server公网访问400错误排查方案
- 第一步先打开
config.json中的enableLogs配置,查看服务端接收请求时的详细错误日志,400错误基本为请求校验不通过导致 - 确认访问路径是否正确:直接访问公网IP:9001根路径本身会返回服务说明纯文本,如果你是前端连接socket.io接口返回400,优先检查以下配置
- 检查socket.io前后端版本兼容性:v3/v4版本的socket.io客户端无法兼容v2版本的服务端,版本不匹配会直接返回400错误,需要保持前后端socket.io大版本一致
- 放开socket.io的跨域校验限制,修改server.js中socket.io初始化代码:
// 将原来的ioServer(httpApp)替换为以下配置 ioServer(httpApp, { cors: { origin: "*", methods: ["GET", "POST"] } }).on('connection', function(socket) { // 原有连接后的逻辑保持不变 })
- 检查
config.json中的allowedOrigins配置,将你的公网IP、绑定域名加入允许列表,可临时设置为"*"测试是否校验问题 - 确认Lightsail实例控制台的安全组规则已经放通9001端口的TCP入站请求,同时实例内部的ufw/iptables防火墙没有拦截9001端口
- 如果你使用HTTPS域名的前端页面访问HTTP协议的9001端口,浏览器会拦截混合内容请求,需要将服务切换为HTTPS模式,或者前端页面也使用HTTP协议访问
内容的提问来源于stack exchange,提问作者Arun Kumar
相关产品推荐
相关产品推荐

