如果存在,则使用 nginx 返回文件,否则传递给代理

如果存在,则使用 nginx 返回文件,否则传递给代理

任务是从查询参数中获取带有文件名的参数,检查文件是否存在,然后:

  • 如果存在,返回此文件
  • 否则,将请求传递给 Django 后端

我已设法获取参数并检查文件是否存在,但我不知道下一步该做什么:

location /media/ {
                set     $file "/static/$arg_key";

                if (-f $file) {
                        // Return the file
                } else {
                        // include proxy_params;
                        // proxy_pass      http://unix:/opt/django/gunicorn.sock;
                }
        }

答案1

这就是目的try_files所在。

例如:

location /media/ {
    try_files /static/$arg_key @django;
}

location @django {
    proxy_whatever...;
}

相关内容