nginx的全局auth_request

Pyd*_* UA 8 nginx

我有一个服务器,我用nginx运行多个子域网站

每个子域都有一个server { ... }配置块(in sites-enabled)

我想添加一个全局动态身份验证后端(另一个http站点),它将检查请求的子域并提供访问权限或询问用户凭据

所以流程应该是这样的

request stie1.example.com ---> [auth check in database] 
                                /              \
                              no               yes
                              /                  \
            show username/pass form        pass to site1.example.com
Run Code Online (Sandbox Code Playgroud)

我找到了auth_request模块 - 但仅举例说明了server上下文

我希望它在顶级环境(http上下文) - 当然 location指令不可用

基本上我想要的是一些全局nginx中间件,我可以运行一些代码(即python)来检查用户是否有权查看其中一个托管域

有什么建议 ?

cns*_*nst 0

如果您提供您真正想要完成的事情的实际背景,这可能会有所帮助。

\n\n

根据http://nginx.org/r/auth_request,该auth_request指令实际上允许在上下文中将上下文 \xe2\x80\x94 向上“两个”级别,location因此,绝对没有什么可以阻止您可以为nginx 实例中的每个实例全局启用它。serverhttpserver

\n\n

否则,如果您希望仅在某些location指令和/或某些server配置中启用它,那么您始终可以include按照http://nginx.org/r/include在任何上下文中使用该指令。

\n