模块ngx_http_auth_basic_module
允许使用“HTTP基本认证”协议验证用户名和密码来限制对资源的访问。
也可以通过 地址来限制访问。 使用satisfy 指令就能同时通过地址和密码来限制访问。
配置范例
location / { auth_basic "closed site"; auth_basic_user_file conf/htpasswd; }
指令
语法: | auth_basic |
默认值: | |
上下文: | http , server , location , limit_except |
开启使用“HTTP基本认证”协议的用户名密码验证。 指定的参数被用作 域
。 参数off
可以取消继承自上一个配置等级 auth_basic
指令的影响。
语法: | auth_basic_user_file |
默认值: | — |
上下文: | http , server , location , limit_except |
指定保存用户名和密码的文件,格式如下:
# comment name1:password1 name2:password2:comment name3:password3
密码应该使用crypt()
函数加密。 可以用Apache发行包中的htpasswd
命令来创建此类文件。
官方文档是这样
那么可以看到这个密码文件需要Apache发行包的功能
所以在实验之前,得yum -y install httpd
把命运交给yum源,htpasswd的具体操作可以htpasswd --help
htpasswd -com /var/user zs 123456,然后看一下这个文件,其实文件名不重要,只要找得到就行
修改nginx配置,auth basic可以随便写,但是后面的认证文件就是之前我们用htpasswd创建的了
然后reload一下,再尝试登陆,就可以看到需要登录名密码了,当然我们创建的zs:123456是可以登陆的,其他的瞎写的就不可以
比较需要注意的是提醒的一个字段,就是我们在配置里写的那个hello!!!,这个也就是一个提示
想取消这个功能,只需要把那个字段后面的加上一个off