1.
前提评估与VPS选型
选VPS要看带宽类型(共享/独享)、上/下行对称性与峰值限制。
建议:选美国西/东岸节点靠近目标观众;CPU 2核及以上,内存 4GB 起;保证独享100M或承诺突发能力。
2.
准备操作系统与基础依赖
以Ubuntu 20.04为例:
1) 登录VPS:ssh root@your.ip.addr
2) 更新并安装依赖:apt update && apt upgrade -y;apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev git curl
3.
编译安装Nginx + nginx-rtmp
详细命令:
git clone https://github.com/arut/nginx-rtmp-module.git
wget http://nginx.org/download/nginx-1.20.2.tar.gz && tar zxvf nginx-1.20.2.tar.gz
cd nginx-1.20.2 && ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module && make && make install
默认安装路径为 /usr/local/nginx
4.
配置Nginx-RTMP基础流媒体
编辑 /usr/local/nginx/conf/nginx.conf,添加rtmp块示例:
rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; push rtmp://cdn-or-backup/live; } } }
然后 /usr/local/nginx/sbin/nginx -s reload
5.
防火墙与端口
开放必要端口:1935(RTMP)、80/443(播放器/HTTPS)、22(SSH)。
使用ufw:ufw allow 1935/tcp && ufw allow 80 && ufw allow 443 && ufw enable
6.
OBS推流设置(客户端)
在OBS设置中:
服务器填写 rtmp://your.vps.ip/live;流密钥为自定义,如 stream1。比特率建议:单路720p 2500-4000kbps,1080p 4500-6000kbps;音频128kbps。根据100M上行可支持多人并发推流或多码率推流。
7.
系统网络优化
编辑 /etc/sysctl.conf 添加或修改:
net.core.somaxconn=1024
net.ipv4.tcp_tw_reuse=1
net.ipv4.ip_local_port_range=1024 65535
应用 sysctl -p。启用BBR:echo "tcp_bbr" > /etc/modules-load.d/bbr.conf && sysctl -w net.ipv4.tcp_congestion_control=bbr
8.
带宽监控与流量分发
安装监控工具:apt install iftop vnstat htop。
若观众量大建议接CDN或用多VPS负载(push 到 CDN 或用 nginx http_flv/HLS 给前端),避免单台VPS出出口瓶颈。
9.
抗DDoS与备份方案
购买基础防护或使用云厂商抗DDoS;
设置备播服务器:在第二台VPS配置相同rtmp,使用push做主备切换并用DNS或负载转发切换流地址。
10.
日志、故障排查与压测
查看 nginx 日志 /usr/local/nginx/logs/error.log 和 access.log。
用 ffmpeg 本地模拟推流:ffmpeg -re -i sample.mp4 -c copy -f flv rtmp://your.vps/live/stream1。用多个实例压测并观察带宽/CPU使用。
11.
合规与延迟优化
跨境直播注意版权与当地法规,必要时备案或获取许可。
降低延迟:使用 HLS+低延迟参数或考虑 WebRTC/RTMP 到 CDN 的实时加速方案。
12.
持续运维建议
自动部署与监控:配置 systemd 管理 nginx 服务、设置 logrotate、定期升级与备份配置文件。
监控报警:结合 Prometheus/Grafana 或简单脚本通知异常带宽/CPU。
13.
问:100M带宽能承载多少并发观看?
14.
答:
理论上100Mbps下行约可承载:若每位观众观看720p(约2500kbps)则约 100000/2500 ≈ 40 人并发(考虑协议开销与抖动,实际建议留30%-50%余量)。使用CDN可无限扩展。
15.
问:出现卡顿是先查哪几项?
16.
答:
优先检查:1) VPS出口带宽是否饱和(iftop/vnstat);2) CPU/内存是否耗尽(htop);3) nginx error.log 有无报错;4) 客户端上行(OBS)码率波动。
17.
问:如何在低成本下提升稳定性?
18.
答:
使用多点分发(小额CDN或多VPS做push备份)、开启TCP优化(BBR)、限制单流最大码率、定期压测并配置自动重试/重连策略,优先保障用户体验。
来源:案例分享 用美国vps100m支撑跨境直播的注意事项