在 nginx 源码编译时开启 flv 视频流模块,需要执行 `./configure` 配置脚本并添加 `--with-http_flv_module` 参数。该模块默认包含在 nginx 标准发行版中,属于内置模块而非外部插件,因此不需要下载额外的源码包,只需在编译安装阶段确保该参数被正确传递即可。

如何验证当前 Nginx 是否已加载 flv 模块
要确认当前的 Nginx 二进制文件是否已经包含了 flv 模块,可以使用 `-V` 参数(大写)来查看详细的编译选项。如果输出结果中包含 `--with-http_flv_module`,则说明模块已启用;若未包含,则需要重新编译安装。

nginx -V
上述命令会输出类似如下的信息,其中 `--with-http_flv_module` 即为关键标识:
nginx version: nginx/1.24.0 built by gcc 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) built with OpenSSL 3.0.2 15 Mar 2022 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module ...
flv 模块的具体配置与使用场景
开启模块后,需要在 Nginx 的配置文件(通常是 `nginx.conf` 或站点配置文件)中配置 location 块,以支持 FLV 视频的 HTTP 流式播放。FLV 格式的视频播放器通常依赖 Nginx 返回特定的头部信息和字节范围请求,以实现边下边播。

server {
listen 80;
server_name video.example.com;
location /videos/ {
root /var/www/html;
# 启用 flv 模块的关键指令
flv;
# 可选:限制带宽或设置缓存
# limit_rate 100k;
}
}
在上述配置中,`flv;` 指令告诉 Nginx 对匹配该 location 的请求进行 FLV 处理。当客户端请求一个 `.flv` 文件时,Nginx 会自动解析 FLV 文件的元数据,并根据客户端请求的起始位置(通过 URL 参数 `start=` 指定,单位为毫秒)返回相应的数据片段。例如,访问 `http://video.example.com/videos/test.flv?start=5000` 将从第 5 秒开始播放视频。这种机制使得浏览器或 Flash 播放器能够无缝地流式传输 FLV 内容,而无需等待整个文件下载完毕。











