如何匹配nginx中的所有位置,以获取身份验证?

Cho*_*per 9 nginx

我需要一个表达式来匹配所有请求,无论如何.

这够好吗?

location ~ ^/
Run Code Online (Sandbox Code Playgroud)

我担心其他位置优先,绕过我的身份验证.

Cyb*_*m0n 14

您可以将ngx_http_auth_basic_module设置放入以下任何上下文中:

http, server, location, limit_except
Run Code Online (Sandbox Code Playgroud)

你的版本

location ~ ^/
Run Code Online (Sandbox Code Playgroud)

只有在您的server部分
示例中没有其他声明的位置时才会起作用:

server {
    ... #some server settings
    location / { # full equivalent for "~ ^/"
        auth_basic on;
        auth_basic_user_file /path/to/some/file;
    }
    location /other_location {
        # here http_auth not inherited
    }
}
Run Code Online (Sandbox Code Playgroud)

只需将您的http_auth设置放入server部分,为此描述的所有位置server都将继承此设置.
例:

server {
    ... # some server settings
    auth_basic on;
    auth_basic_user_file /path/to/some/file;
    location / {
        # HERE http_auth settings would be
        # inherited from previous configuration level. 
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 问题是如何将所有请求与服务器匹配.答案是关于如何添加基本身份验证:( (7认同)