1. 前期准备与资源评估
1.1 确认业务类型与并发:直播低延迟或点播、并发观众数、上/下行带宽需求(例如1000并发720p约需上行2-4Mbps×推流数)。
1.2 选择VPS规格:建议选择至少1Gbps端口或更高带宽、独立公网IP、最低8核CPU + 16GB内存起步(并发高时横向扩展)。
1.3 地理位置与延迟:台湾节点对中国大陆、东南亚用户延迟低,评估目标用户分布决定是否混合多区域CDN。
2. 购买与网络测试
2.1 购买:优先选择能提供带宽包选项或按带宽计费的提供商(避免带宽突发被限速)。
2.2 测速:上机后用iperf3测试上下行与丢包,示例命令:iperf3 -c x.x.x.x -p 5201 -R(注意服务器需运行iperf3 -s)。
2.3 路由和BGP:若业务对稳定性要求高,询问是否有BGP多线或对接直连CDN的能力。
3. 系统初始化与安全
3.1 更新系统:sudo apt update && sudo apt upgrade -y。
3.2 创建服务用户与SSH密钥登录:adduser live && usermod -aG sudo live;在本地生成ssh-key并复制到~/.ssh/authorized_keys。
3.3 基本防火墙:使用ufw打开必要端口(示例:ufw allow 22/tcp; ufw allow 1935/tcp; ufw allow 80,443/tcp; ufw enable)。
4. 网络内核与TCP调优(关键提高并发)
4.1 修改sysctl:编辑/etc/sysctl.conf,追加以下配置并执行sysctl -p:
net.core.somaxconn=65535
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_fin_timeout=15
net.core.netdev_max_backlog=250000
net.ipv4.ip_local_port_range=10240 65535
4.2 调整文件描述符限制:在/etc/security/limits.conf中添加:
* soft nofile 200000
* hard nofile 200000
并在启动脚本中ulimit -n 200000。
5. 部署流媒体服务:SRS(推荐)或Nginx-RTMP
5.1 使用Docker快速部署SRS(示例):docker run -d --name srs -p 1935:1935 -p 1985:1985 -p 8080:8080 ossrs/srs:3。
5.2 SRS配置要点(srs.conf):设置vhost->hls(片段时长、片段数)、http_server开启用于HLS/播放和api;示例:
vhost __defaultVhost__ {
hls {
enabled on;
hls_fragment 5;
hls_window 30;
}
}
5.3 Nginx-RTMP(编译或使用已有镜像)配置示例:
rtmp {
server {
listen 1935;
application live {
live on;
hls on;
hls_path /tmp/hls;
hls_fragment 5s;
}
}
}
6. 推流与转协议示例(FFmpeg)
6.1 推流命令(OBS或FFmpeg):ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -b:v 2500k -c:a aac -b:a 128k -f flv rtmp://你的VPS:1935/live/streamKey。
6.2 生成HLS(服务器端或FFmpeg推送):若使用FFmpeg直接生成HLS:ffmpeg -i rtmp://... -c copy -f hls -hls_time 5 -hls_list_size 6 /var/www/html/hls/stream.m3u8(注意并发文件IO压力)。
7. CDN 对接与缓存策略
7.1 HLS接入CDN:将HLS的m3u8地址作为源站给CDN,CDN缓存后降低源站带宽。
7.2 缓存控制:设置短缓存(例如m3u8缓存5-10s,ts文件长缓存),通过nginx设置Cache-Control响应头或在CDN配置规则。
7.3 回源压力缓解:在高并发时使用多机房源站或负载均衡器(HAProxy/Nginx upstream + keepalive)分担回源。
8. HTTPS、证书与低延迟优化
8.1 HTTPS:使用Let's Encrypt自动化证书,certbot --nginx申请并自动配置。
8.2 HTTP/2与TLS:为播放页面开启HTTP/2;HLS可走HTTPS以避免浏览器混合内容问题。
8.3 低延迟HLS或LL-HLS:如果需要极低延迟,配置短切片并使用部分片段(partial)或WebRTC接入(SRS支持WebRTC接入)。
9. 监控、日志与自动扩容
9.1 监控:部署Prometheus + Grafana采集CPU、内存、网络、连接数、RTMP连接数;SRS自带prometheus模块。
9.2 日志:配置分级日志(access/error),使用ELK或Loki集中分析。
9.3 自动扩容:基于指标(带宽、连接数)触发新增VPS并通过负载均衡或DNS轮询引流,建议预置镜像与自动化脚本(Ansible/Terraform)。
10. 故障排查实操步骤
10.1 无法连通:检查安全组/防火墙、端口监听(ss -tlnp | grep 1935)、服务是否启动。
10.2 丢包或卡顿:用iftop/iftop -i eth0查看流量,用tcptraceroute或mtr排查网络路径丢包。
10.3 源站负载高:查看top/iostat,并临时开启更高带宽或加入CDN进行垂直降载。
11. 成本与运维建议
11.1 预算控制:结合CDN计费与VPS带宽包,测试峰值并按峰值带宽采购,避免超出账单。
11.2 运维自动化:使用脚本自动部署SRS/Nginx、sysctl调整与证书续期,减少人工干预。
11.3 灾备:配置多机房或跨区镜像源站,确保单点故障不会影响整体业务。
12. 常见问答一
Q: 在
台湾VPS上部署直播最容易遇到的瓶颈是什么?
13. 常见问答二
A: 最大瓶颈通常是出站带宽与并发TCP连接数。解决方法是选择1Gbps以上端口或带宽包、调整内核参数(net.core.somaxconn、ulimit等)、并通过CDN分流和水平扩展源站。
14. 常见问答三
Q: 我需要多台VPS还是一台大配置就够?
15. 常见问答四
A: 建议采用多台小集群+CDN方案。单台大机器在稳定性与弹性上不如多台集群,且扩容更灵活。对于突发流量,CDN可以显著降低源站带宽需求。
来源:大带宽台湾vps适合视频和直播平台的部署建议