如何根据代理响应有条件地在nginx中提供静态文件?

时间:2015-11-13 21:40:04

标签: api nginx static-files serving limited-user

我有一个文件夹/static/uploads/limited,我需要配置nginx来为特定用户提供一些文件。我还有一个API /api/auth/canIDownloadThis,它响应json,如

{
  "result:"true"
}

如何在提供特定文件夹之前让nginx检查我的API proxy_pass的响应?

我需要的伪代码是这样的:

location /static/uploads/limited{
    IF /api/canIdownloadThis IS TRUE
    THEN alias /my_secret_folder_path
} 

因为我不想使用basic_auth。谢谢。

1 个答案:

答案 0 :(得分:2)

感谢@stephenKing,我需要使用--with-http_auth_request_module编译nginx,然后创建一个响应403200

的API
location ~* /(\w+)/static/limited/(?:/_[\d]+\.[\d]+\.[\d]+)?/(.*)$ 
{
    auth_request /IC/contents/can_i_access_limited;
    alias /home/A/iB-system/C/$1/static/uploads/$2;
   }