You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx Location块配置异常,访问HLS路径持续返回404求助

Nginx Location块配置异常,访问HLS路径持续返回404求助

兄弟,看你贴的nginx.conf内容,我一眼就发现问题所在了——你没配置对应的server块和/hls路径的location规则!Nginx现在只加载了基础的全局配置,根本不知道该把/hls的请求映射到服务器上的哪个文件夹,返回404太正常了。

我给你一步步捋清楚怎么解决:

1. 补充Server和Location配置

在你的/etc/nginx/nginx.conf的http块内部,添加一个server块,专门处理这个站点的请求。假设你的HLS视频文件存在服务器的/var/www/hls_storage目录下,配置可以这么写:

server {
    listen 80;
    server_name 192.168.0.37;

    # 匹配/hls开头的请求(包括带斜杠的情况)
    location /hls/ {
        # 根目录指向存放HLS文件的上级目录,这样/hls/会对应到/var/www/hls_storage/
        root /var/www;
        # 如果需要允许浏览目录内容,打开这个选项(可选)
        autoindex on;
        # 必须给HLS相关文件设置正确的MIME类型,不然浏览器可能无法解析
        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
    }

    # 额外处理不带斜杠的/hls请求,重定向到带斜杠的版本,避免路径混乱
    location = /hls {
        return 301 /hls/;
    }
}

如果你的HLS文件直接存在/var/www/hls目录,那root就设为/var/www,这样请求/hls/test.m3u8就会找到/var/www/hls/test.m3u8。

2. 检查文件权限

Nginx是用www-data用户运行的,所以必须确保HLS文件所在目录的权限让这个用户能读取:

# 递归设置目录所属用户为www-data
chown -R www-data:www-data /var/www/hls_storage
# 设置目录和文件的可读权限
chmod -R 755 /var/www/hls_storage

3. 验证配置并重启Nginx

先检查配置有没有语法错误,这一步很重要,别直接重启搞崩服务:

nginx -t

如果输出nginx: configuration file /etc/nginx/nginx.conf test is successful,就可以重启Nginx让配置生效:

systemctl restart nginx

做完这些再访问http://192.168.0.37/hls/试试,应该就能正常访问你的HLS文件了。要是还有问题,你可以贴一下Nginx的error.log内容(在/var/log/nginx/error.log),我再帮你排查!

备注:内容来源于stack exchange,提问作者learningtech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:24:29