配置详解
Nginx的auth_basic指令可根据预先设置的用户名和密码对web站点进行简单的访问控制,auth_basic指令由ngx_http_auth_basic_module模块提供,对HTTP Basic Authentication协议进行了支持。
语法规则
- auth_basic 启用或关闭认证;
- auth_basic_user_file 密码文件;
配置说明
1、auth_basic:启用或关闭认证。
- 字符串:使用双引号引用的任意字符串,用于用户输入密码时给予提示。
- off:关闭认证,通常用于关闭上一级模块启用的认证需求。
注意事项
auth_basic指令针对不同的作用域可以配置在以下模块中:
- http:配置在主配置文件nginx.conf的http模块中,作用域为所有虚拟主机。
- server:配置在虚拟主机的server模块中,作用域为此虚拟主机的所有请求。
- location:配置在虚拟主机的location模块中,作用域为与当前location匹配的所有请求。
- limit_except:配置在limit_except模块中,作用域为与当前limit_except请求方法匹配的所有请求。
配置示例
用户密码文件的创建
1、安装httpd-tools模块。

2、创建密码文件并加入用户和密码,命令为:htpasswd −c 文件 用户,密码文件名称与路径自定义。
- −c选项表示文件不存在时自动创建,若存在则清空文件。当有多个用户需要添加时,除第一次外可以去掉选项−c多次执行此命令。

- htpasswd −c /etc/nginx/.htpasswd yuan:创建密码文件/etc/nginx/.htpasswd并添加用户yuan。
- New password/Retype new password:输入密码与确认密码。
3、查看密码文件,密码已进行加密处理。

指令的配置与测试
1、在需要进行认证的模块中添加指令。
1.1、要对某一类请求进行认证可以添加在location块中。

1.2、重新加载配置文件后进行访问测试。
1.2.1、对需要认证的请求,会弹出密码框要求用户输入。

1.2.2、若用户名或密码输入错误会要求再次输入,若不输入直接访问则会返回401错误页面。

1.2.3、输入正确,返回请求页面。

2、在不需要进行认证的模块中禁用指令。
2.1、要对多个类型的请求进行认证可以添加在server块中,再使用off指令将不需要认证的模块排除。

2.2、重新加载配置文件后进行访问测试,效果同上。