【发布时间】:2018-06-12 08:13:26
【问题描述】:
我有一台服务器,我在其中使用 nginx 运行多个子域站点
每个子域在配置中都有一个 server { ... } 块(在 sites-enabled 中)
我想添加一个全局动态身份验证后端(另一个 http 站点),它将检查请求的子域并授予访问权限或询问用户凭据
所以流程应该是这样的
request stie1.example.com ---> [auth check in database]
/ \
no yes
/ \
show username/pass form pass to site1.example.com
我找到了 auth_request 模块 - 但仅关于 server 上下文的示例
我希望它在顶级上下文 (http 上下文) - 当然 location 指令不可用
所以基本上我想要的是一种全局 nginx 中间件,我可以在其中运行一些代码(即 python)来检查用户是否有权查看其中一个托管域
有什么建议吗?
【问题讨论】:
-
您可以创建一个通用身份验证配置,代理传递到同一端点并将其包含在每个
server块中,如include auth_proxy.conf; -
有趣的问题,这里似乎没有解决方案,因为在 http 级别可以做的很少。如果您可以管理服务器级别,那么@aergistal 建议的简单包含似乎是最可行的方法
标签: nginx