实现基于用户的访问控制,使用basic机制进行用户认证

1,在配置文件添加如下几行配置

相关模块ngx_http_access_module

server {
        listen 80;
        root /nginx/html/;
        location /admin/ {
                auth_basic "admin Area";
                auth_basic_user_file /etc/nginx/.ngxpasswd;
				allow 192.168.68.7;
				deny all;
        }
    }
        "注意:在/nginx/html目录下必须要有admin这个目录"
    指令解析:
        auth_basic "Admin Area"; 设置提示语
        auth_basic_user_file file;  指定用户名口令文件路径
		allow 192.168.68.7;          设置允许访问的主机,也可是一个网段,如:192.168.68.0/24
		deny all;                  设置拒绝访问的主机或网段端all表示全部

2,创建存放用户名密码的文件

- 检查是否安装httpd-tools
            rpm -ql httpd-tools
- 创建用户,密码文件
            [root@centos7 html]# htpasswd -cm /etc/nginx/.ngxpasswd ngx1
            New password: 
            Re-type new password: 
            Adding password for user ngx1
        "注意:再创建其他用户不能加c选项,c选项会重新创建该文件."
-文件内容
			[root@centos7 html]# cat /etc/nginx/.ngxpasswd 
			ngx1:$apr1$SCYEG5oY$VQm2hG/oSnkvS6jBgoe9j.

- 为了文件安全可以修改一下文件权限
            chmod 600 /etc/nginx/.ngxpasswd
            -rw-------    1 root root    43 Mar 22 11:32 .ngxpasswd

访问测试: