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

Nginx配置匹配错误目录 静态视频文件访问失败问题求助

问题根因

你当前配置中使用root指令的默认路径拼接逻辑为:root定义的路径 + location匹配的路径前缀 + 请求路径剩余部分,所以当你访问/videos/neuralAI.mp4时,Nginx会自动拼接出/pipelines/videos/neuralAI.mp4的查找路径,和你实际存放文件的/pipelines/assets/目录不匹配,因此触发文件不存在的报错。

解决方案

最优方案:替换root为alias指令

alias指令的逻辑是丢弃location匹配的路径前缀,直接用alias定义的路径拼接请求路径剩余部分,刚好匹配你的目录结构,修改后的location配置如下:

location /videos/ {
    access_by_lua_block {
        if(ngx.var.maintenance == "on") then
            local authorize = require("authorize") 
            local maintenance = ngx.var.maintenance
            authorize.validate_access(nil, nil, "/videos", "{DEPLOYMENT}", maintenance) 
        end
    }
    # 把原来的root替换为alias,注意末尾的斜杠必须保留
    alias /pipelines/assets/;
    proxy_temp_path /usr/local/openresty/nginx/temp/proxy_temp;
    client_body_temp_path /usr/local/openresty/nginx/temp/client_body_temp;
    fastcgi_temp_path /usr/local/openresty/nginx/temp/fastcgi_temp;
    uwsgi_temp_path /usr/local/openresty/nginx/temp/uwsgi_temp;
    scgi_temp_path /usr/local/openresty/nginx/temp/scgi_temp;
    access_log /usr/local/openresty/nginx/logs/access.log;
    error_log /usr/local/openresty/nginx/logs/error.log;
}

修改后访问/videos/neuralAI.mp4时,Nginx会直接查找/pipelines/assets/neuralAI.mp4,符合你的实际目录结构。

备选方案:调整目录结构

如果你不想修改Nginx配置,可以直接把/pipelines/assets目录重命名为/pipelines/videos,原有root配置无需改动即可正常访问。

生效验证

修改完成后执行以下操作确认配置生效:

  • 执行nginx -t检查配置语法是否正确,返回success代表配置合法
  • 执行nginx -s reload热重载配置,无需重启Nginx即可生效

内容的提问来源于stack exchange,提问作者learning fun。

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:51:00