首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >nginx,使用身份验证服务静态文件。

nginx,使用身份验证服务静态文件。
EN

Stack Overflow用户
提问于 2019-01-05 14:22:49
回答 1查看 3K关注 0票数 9

我正在用艾奥赫特开发一个web应用程序,其中用户身份验证是用aiohttp-安全实现的。我使用nginx进行服务器部署。这种配置是受艾奥赫德博士启发的,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
location /api {
  proxy_set_header Host $http_host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_redirect off;
  proxy_buffering off;
  proxy_pass http://127.0.0.1:8080/api;
}

web应用程序的一部分类似于相册。我希望这些照片由ngninx公司提供,以保证性能。我的配置现在看起来是这样的,但它可以绕过身份验证:

代码语言:javascript
代码运行次数:0
运行
复制
location /photos {
  root /srv/web/photos/;
  try_files $uri =404;
}

如何使nginx只向经过身份验证的用户提供照片?( python应用程序正在实现的身份验证机制,如上面所述)

EN

回答 1

Stack Overflow用户

发布于 2021-12-04 17:22:37

这可以通过使用基于子请求结果的身份验证来实现。

可以借助子请求认证保护静态/媒体位置。

考虑静态/媒体位置:/media/

nginx.conf

代码语言:javascript
代码运行次数:0
运行
复制
....

location /media {
  auth_request /auth;
  #...
}

location = /auth {
    internal;
    proxy_pass              https://yourauthserver/is_authenticated;
    proxy_pass_request_body off;
    proxy_set_header        Content-Length "";
    #...
}
...

/is_authenticated --这是您的web应用程序检查用户是否经过身份验证的位置。

只有当is_authenticated返回状态代码200时,才能提供静态/媒体服务。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54052932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档