求Nginx.conf文件配置

项目部署完了,但我发现视频无法播放,因为特殊要求,项目将视频切割成了ts文件,并将m3u8文件放到了ts视频文件夹内(即每个视频的m3u8引导文件分散在不同的文件夹内),当我去请求服务器播放视频时,发现视频的M3u8文件无法找到,请问该如何处理?

img


上面的截图是视频切割后ts文件和m3u8文件

img


文件件内的内容
这种情况,nginx.conf文件如何配置?
谢谢!

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

chatgpt:不喜勿喷

http {
    server {
        listen 80;
        server_name example.com;

        location /videos/ {
            # 设置 M3U8 文件的 MIME 类型
            types { application/vnd.apple.mpegurl m3u8; }

            # 处理 M3U8 文件的请求
            if ($request_filename ~* ^.*\.m3u8$) {
                add_header Cache-Control no-cache;
                add_header Access-Control-Allow-Origin *;
                root /var/www/example.com;
                expires -1;
            }

            # 处理 TS 文件的请求
            if ($request_filename ~* ^.*\.ts$) {
                root /var/www/example.com;
                add_header Cache-Control "max-age=86400";
                add_header Access-Control-Allow-Origin *;
            }
        }
    }
}


在此示例中,Nginx 配置文件中的 location /videos/ 块用于处理视频文件的请求,其中 root 指令指定了视频文件所在的根目录。

types 指令用于设置 M3U8 文件的 MIME 类型为 application/vnd.apple.mpegurl。

然后,使用正则表达式 $request_filename ~* ^.*.m3u8$ 来匹配 M3U8 文件的请求,并添加必要的响应头信息,如 Cache-Control 和 Access-Control-Allow-Origin。

对于 TS 文件的请求,使用正则表达式 $request_filename ~* ^.*.ts$ 来匹配,并添加必要的响应头信息。

请注意,这只是一个示例配置,需要根据您的具体情况进行修改。