我的情况是,我们已在所有非实时网站的全球级别设置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/*;
答案 0 :(得分:2)
是的,你可以做到。
从文档引用:http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html#auth_basic
语法:auth_basic string |关;
默认值:auth_basic off;
上下文: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>;