按AWS Kinesis Video Streams WebRTC文档操作后,如何访问应用及排查部署问题?
当你成功运行npm run develop启动开发服务器后,控制台输出里一般会给出服务器的访问地址,类似这样的提示:
Local: http://localhost:3000
Network: http://你的本地IP地址:3000
你直接打开浏览器,输入http://localhost:3000就能进入SDK的根目录,测试页面通常放在examples文件夹下,所以可以访问http://localhost:3000/examples/index.html来体验WebRTC相关功能。如果控制台显示的不是3000端口,记得替换成实际输出的端口号。
部署到http://shantanuoak.com:3001无法访问,咱们可以从这几个维度一步步排查:
调整开发服务器的监听配置
开发模式下的服务器默认通常只绑定localhost(仅服务器本机可访问),外部设备无法连接。你需要修改配置让它监听0.0.0.0(允许所有IP访问):- 如果是用webpack-dev-server,在
webpack.config.js里添加配置:devServer: { host: '0.0.0.0', port: 3001 }; - 如果是其他开发服务器,找到对应的host配置项改为
0.0.0.0,同时指定端口为3001。
- 如果是用webpack-dev-server,在
确认端口已开放
服务器的防火墙或安全组必须允许3001端口的TCP入站请求:- 若用Linux服务器,可执行
sudo ufw allow 3001/tcp(ufw防火墙)或配置iptables规则; - 若是云服务器,需要在安全组中添加入站规则,允许指定IP或所有IP访问3001端口。
- 若用Linux服务器,可执行
验证服务运行状态
在服务器上执行netstat -tlnp | grep 3001或lsof -i :3001,确认3001端口已被你的Node.js服务占用。如果没有结果,说明服务未启动成功,查看启动日志排查报错(比如端口被占用、依赖缺失等)。生产环境建议用静态文件托管
npm run develop是开发模式,不适合生产环境部署。建议先执行npm run build生成静态生产文件,再用Nginx、Apache这类专业Web服务器托管:- 执行
npm run build,生成的文件一般在dist或build目录; - 配置Nginx,将根目录指向该静态文件目录并监听3001端口,这样更稳定,也更易配置外部访问。
- 执行
测试网络连通性
从本地机器执行curl http://shantanuoak.com:3001或telnet shantanuoak.com 3001,如果连接失败,说明网络层面有问题(比如防火墙拦截、路由不通);如果能返回HTML内容,可能是浏览器缓存或跨域问题,可查看浏览器控制台的错误信息进一步排查。
内容的提问来源于stack exchange,提问作者shantanuo

