1. 前言与准备工作
1) 确定目标:直播(低延时)或点播(缓存化)、并发观众规模与转码档位。
2) 预算评估:节点带宽、流量计费与DDoS防护成本各占比要估算清楚。
3) 域名与证书:准备域名,使用Let's Encrypt自动签发证书并启用HTTPS/TLS。
4) 运维工具:准备SSH密钥、监控(Prometheus/Grafana或netdata)、日志集中(ELK/Fluentd)。
5) 安全策略:默认关闭无用端口,开启fail2ban、配置基本iptables和sysctl硬化网络栈。
2. 日本VPS选型与带宽规划(示例与对比表)
1) 推荐机房:东京(TYO)或大阪(OSA),东京节点对中国东部延迟通常在70-120ms。
2) 带宽类型:选择带公网带宽(1Gbps端口)并关注月流量包或按流量计费。
3) 磁盘与IO:选择NVMe或SSD,流媒体写入与缓存依赖IO,推荐NVMe。
4) 机型建议:至少2核、4GB内存起步用于小型服务,生产建议4核或以上。
5) 下面为常见供应商与配置示例(仅供参考):
| 供应商 |
配置 |
带宽/流量 |
适用场景 |
| Vultr 东京 |
4 vCPU / 8GB / 160GB NVMe |
1Gbps / 2TB/月 |
中小直播+转码 |
| Linode 东京 |
2 vCPU / 4GB / 80GB SSD |
1Gbps / 按量计费 |
低并发测试环境 |
| Sakura(日本) |
8 vCPU / 16GB / 400GB NVMe |
1Gbps / 按需 |
高并发生产环境 |
3. 系统与网络基础配置
1) 系统选择:推荐Ubuntu 22.04 或 CentOS 8,节省兼容性问题。
2) 内核调优:调整net.core.somaxconn、net.ipv4.tcp_tw_reuse、net.ipv4.tcp_fin_timeout等以提高并发连接能力。
3) 防火墙策略:仅开放必要端口(80/443/1935/RTMP端口/SSH),使用ufw或iptables做白名单和限速。
4) 文件描述符:将ulimit -n设置为65536以支持大量并发连接。
5) 带宽测试:使用iperf3测试上行/下行峰值,典型1Gbps口能达到900+Mbps吞吐,检测结果记录并据此选带宽。
4. 搭建流媒体服务器:Nginx-RTMP与FFmpeg集成
1) 安装Nginx-RTMP模块或使用SRS(Simple Realtime Server),选择取决于功能需求(HLS/DASH/SRT/WebRTC)。
2) Nginx配置要点:启用worker_processes自动、worker_connections设置高值、启用sendfile和tcp_nopush。
3) FFmpeg推流与转码:使用硬件加速(Intel QuickSync或NVENC)能显著降低CPU占用。例如:ffmpeg -i rtmp://in -c:v h264_nvenc -b:v 2500k -preset p3 -g 50 -c:a aac -b:a 128k -f flv rtmp://out。
4) HLS配置:切片时长一般设置为2-4秒,确保低延时同时兼顾CDN缓存效果。
5) 自动分发:使用Nginx作为入口接收RTMP,FFmpeg做转码并输出多码率到不同推流点,或交由流媒体服务器的relay功能输出给CDN。
5. 转码优化与性能数据(实测示例)
1) 基线数据(真实小规模测试):使用Vultr 4vCPU/8GB实例,CPU为Intel E3,带宽1Gbps。
2) 转码档位设定:1080p@4Mbps、720p@2.5Mbps、480p@1Mbps、360p@600kbps。
3) CPU占用(使用x264 veryfast)实测:1080p≈45-60%单核,720p≈25-35%,480p≈12-20%(仅作参考)。
4) 使用NVENC后同等质量下CPU占用可降至单个流总占用约5-15%,显著提高并发能力。
5) 下表为单台4核机器并发能力估算(仅示例):
| 转码方式 |
每流CPU占用预估 |
4核并发估算 |
| 软件x264 veryfast |
720p ≈30% 单核 |
约8-10路 720p |
| 硬件 NVENC |
720p ≈8-12% 总CPU |
约25-40路 720p |
6. CDN接入与DDoS防御实战
1) CDN选择:对于全球分发可选Cloudflare/CloudFront/Alibaba/腾讯云CDN,国内外观众分配策略要合理。
2) 接入方式:将HLS/DASH静态切片通过CDN缓存,RTMP可使用流媒体中继或把观众直接分流到边缘。
3) DDoS防护:启用Cloudflare Spectrum或Kubernetes级别的抗DDoS服务,同时在源站做流控与黑名单。
4) 实战策略:源站只允许CDN或白名单IP直连,禁止来自任意公网的直接播放请求以减轻攻击面。
5) 日志与溯源:开启WAF与访问日志,结合速率限制(limit_conn、limit_req)快速阻断异常连接峰值。
7. 真实案例与运维监控
1) 案例回顾:某教育直播项目使用东京Vultr 4vCPU/8GB+Cloudflare,峰值并发2万,转码使用NVENC集群+CDN分流,日流量约6TB。
2) 关键配置:域名解析使用多A记录和低TTL配合Anycast CDN;源站限制每IP并发并使用SNI验证。
3) 监控方案:Prometheus采集node_exporter与ffmpeg_exporter指标,Grafana展示CPU、带宽、延迟、播放成功率。
4) 灾备与扩容:使用Template化的镜像与自动化脚本(Ansible/Terraform)快速横向扩容,新机自动加入负载池。
5) 运维建议:定期压测(使用tsung或wrk),保留至少30%冗余资源,应对突发活动和DDoS。
来源:如何搭建日本vps进行流媒体服务搭建与转码优化