我有一种情况,我们已经为所有非现场网站设置了全局级别的auth_basic.是否可以在Nginx中覆盖特定于站点的文件中的此auth_basic,并使用新的身份验证密码将auth_basic应用于特定于站点的路径.
全局级别的auth_basic在/etc/nginx/conf.d/auth.conf中设置
特定于站点的配置位于/etc/nginx/sites-enabled/sitename.conf中
在nginx.conf我有:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
最佳答案 是的,你可以做到.
引自文档:http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html#auth_basic
Syntax: auth_basic string | off;
Default: auth_basic off;
Context: http, server, location, limit_except
正如您所看到的,指令本身可以在多个级别(上下文)中定义,即如果您在全局级别具有它,则可以在服务器甚至位置级别禁用它.
auth_basic_user_file指令http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html#auth_basic_user_file也是如此
因此,您可以在全局级别定义auth_basic / auth_basic_user_file,并根据每个站点覆盖它
auth.conf:
auth_basic global;
auth_basic_user_file <path_to_your_auth_file>;
sitename.conf:
auth_basic sitenamereal; # any name, actually you can omit it
auth_basic_user_file <path_to_your_site_specific_file>;