北京日报
视频出口带宽达到上限时,Nginx 配置无法凭空增加可用带宽。limit_rate 可以控制单连接速度,limit_conn 和 limit_req 可以🚀限制异常并发,但限制过严会让合法用户更容易缓⭐冲。大量公网视频分发应把热点内容放到边缘缓存或专用分发层,让 Nginx 主要处理鉴权、回源和未命中请求。
分片文件适合设置明确的缓存时间,并让相同分片尽量命中缓存。个性化鉴权参数不能直接全部作为缓存键,否则同一个分片会生成大量几💪乎相同的缓存对象;需要根据业务将用户身份校验与公共视频内容缓存分开处理。
Nginx 视频高负载的第一步是确认监控中的“100%”具体代表什么。Linux 中单个进程占用 100% CPU,通常只表示占满一个逻辑核心;四核机器上显示 400%,才可能是四个核心同时繁忙。容器设置了单核 CPU 配额时,进程达到 100%也不等于整🌅台宿主机已经满载。
Nginx 视频请求的真实瓶颈还需要结合播放端现象判断。用户缓冲并不必然说明 Nginx CPU 已满,也可能是视频码率超过了用户带宽、分片过大、首包响应慢,或播放器反复发起 Range 请求。监控曲线、Nginx 日志和播放器网络面板应当同时对照。
Nginx 视频优化的验收应同时覆盖正常播放、拖动进度、并发访问和异常请求,不能只观察首页打开速度。至少保留以下指标:worker CPU、出口带宽、磁盘 await、活跃连接数、206 比例、缓存命中率、首字节时间、完整请求耗时和 4xx、499、5xx 比例。
Nginx worker_connections 只限制单个 worker 可处理的连接数量,不代表可承载的用户数或视频带宽。提高该值前,还要同步检查 worker_rlimit_nofile、系统💡文件描述符上限、内核连接队列、云主机带宽和上游连接数。
TLS 占用较高时,Nginx 应检查会话复用、证书链、协议版本和硬件加速支持,而不是简单增加 worker。视频内容本身不需要 gzip,关闭媒体类型🤔压缩通常比调高压缩级别更直接;HTML 播放页面和 JSON 接口可以继续单独使用压缩。
当 CPU、磁盘和网络都没有持续达到上限,但用户仍然卡顿时,应继续检查视频码率、分片时长、源站首包、播🎨放器缓冲策略和用户侧网络。只有在资源指标与请求链路相互对应时,才能准确解释 🔑nginx100%video100%,并选择配置优化、缓存扩容、存储升级或分发架构调整。