nginx的用户认证及访问控制

    xiaoxiao2023-11-26  164

    问题

    沿用练习一,通过调整Nginx服务端配置,实现以下目标:

    访问Web页面需要进行用户认证用户名为:tom,密码为:123456网站根目录下首页文档所有主机均可以访问为网站创建二级目录/test,并生成index.html文档test目录下的页面仅192.168.4.205可以访问 方案

    通过Nginx实现Web页面的认证与访问控制,需要修改Nginx配置文件,在location容器中添加allow及deny语句实现访问控制,添加auth语句实现用户认证。最后使用htpasswd命令创建用户及密码即可。

    步骤

    实现此案例需要按照如下步骤进行。

    步骤一:修改Nginx配置文件

    1)修改/usr/local/nginx/conf/nginx.conf

    [root@pc205 ~]# vim /usr/local/nginx/conf/nginx.conf

    .. ..

    server {

            listen       80;

            server_name  localhost;

            auth_basic "Input Password:"; //认证提示符

            auth_basic_user_file pass.txt; //认证密码文件

            location / {

                root   html;

                index  index.html index.htm;

            }

            location /test {

                    allow 192.168.4.205; //访问控制,仅192.168.4.205可以访问

                    deny all; //拒绝所有

                index  index.html index.htm;

            }

    2)创建二级页面目录,并生成index.html文件

    [root@svr5 ~]# mkdir /usr/local/nginx/html/test

    [root@svr5 ~]# echo “test” > /usr/local/nginx/html/test/index.html

    3)生成密码文件,创建用户及密码

    使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools。

    [root@svr5 ~]# htpasswd -cm /usr/local/nginx/conf/pass.txt tom

    New password:

    Re-type new password:

    Adding password for user tom

    4)重启Nginx服务

    [root@svr5 ~]# /usr/local/nginx/sbin/nginx –s stop

    [root@svr5 ~]# /usr/local/nginx/sbin/nginx

    步骤二:客户端测试

    1)登录192.168.4.205主机进行测试

    [root@client ~]# firefox http://192.168.4.5 //输入密码后可以访问

    [root@client ~]# firefox http://192.168.4.5/test //输入密码后可以访问

    2)登录非192.168.4.205的其他任意主机测试

    [root@client ~]# firefox http://192.168.4.5 //输入密码后可以访问

    [root@client ~]# firefox http://192.168.4.5/test //输入密码后无法访问

    最新回复(0)