使用原始uri的nginx auth_request

时间:2018-11-21 11:32:45

标签: django nginx authorization

这可能与this question有关。

我尝试使用nginx提供静态文件。但是,只有具有适当权限的注册用户才可以下载这些文件。

在django应用程序中,我已经可以授权用户,但是由于下载不是django提供的,而是nginx提供的,因此我遇到了一些问题。

当前我的nginx配置中有两个位置。

location / {
    uwsgi_pass django;
    include    /usr/share/nginx/uwsgi_params;
}

location ~ /projects/(.*)/downloads/(.+[^/])$ {
    auth_request /api/auth;
    root /usr/share/nginx/downloads;
}

此配置有效,但是我无法检查是否允许注册用户访问此下载区域。

如果我可以将第二个代码段调整为这样的语法就足够了。

location ~ /projects/(.*)/downloads/(.+[^/])$ {
    auth_request /projects/$1/downloads/;
    root /usr/share/nginx/downloads;
}

但是使用此配置,不会调用uri,而是调用给定的字符串 /projects/my_project/downloads/my_file.txt

是否有一种简单的方法将原始uri传递给auth_request?

提前谢谢

0 个答案:

没有答案