Nginx用户认证

Nginx用户认证

一般的论坛在管理后台登录时都需要输入管理员密码,已经做了一次用户认证,但是类似这样的一些特殊的访问,为了增加安全性,增加一层Nginx用户认证,如何配置呢?


一、修改虚拟主机配置文件

进入www.test.com的虚拟主机配置文件test.conf并编辑该文件

[root@daixuan vhosts]# cd /usr/local/nginx/conf/vhosts/

[root@daixuan vhosts]# ls

default.conf  test.conf

[root@daixuan vhosts]# vim test.confserver //红色为添加内容,“~表示匹配任何以开头以admin.php结尾的文件匹配。“\”表示脱意“.”

{

    listen 80;

    server_name www.test.com;

    index index.html index.htm index.php;

    root /data/www;

    location ~ .*admin\.php$ {      //注意“{”前面有空格,否则报错

        auth_basic "auth";

        auth_basic_user_file /usr/local/nginx/conf/.htpasswd;

        include fastcgi_params;

        fastcgi_pass unix:/tmp/www.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;

    }

    location ~ \.php$ {

        include fastcgi_params;

        fastcgi_pass unix:/tmp/www.sock;

        #fastcgi_pass  127.0.0.1:9000;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;

    }

}

二、创建密码文件

在安装apache的时候已经安装了apache的htpasswd密码文件生成工具,可以使用yum install httpd安装apache并安装此工具,查看该工具:

[root@daixuan vhosts]# ls /usr/local/apache2/bin/htpasswd

/usr/local/apache2/bin/htpasswd

创建密码文件,同时创建用户daixuan

[root@daixuan vhosts]# htpasswd -c /usr/local/nginx/conf/.htpasswd daixuan

New password:

Re-type new password:

Adding password for user daixuan

[root@daixuan vhosts]# cat /usr/local/nginx/conf/.htpasswd

daixuan:$apr1$V8d6KnIW$19lMeMTK4cHIKvnscilgB0

创建test用户,不加-c (create)选项,否则会重新创建并覆盖.htpasswd文件

[root@daixuan vhosts]# htpasswd /usr/local/nginx/conf/.htpasswd test 

New password:

Re-type new password:

Adding password for user test

[root@daixuan vhosts]# /etc/init.d/nginx reload

重新载入 Nginx:                                           [确定]


三、测试

1、使用curl测试

[root@daixuan vhosts]# curl -x127.0.0.1:80 www.test.com/admin.php               <html>

<head><title>401 Authorization Required</title></head>

[root@daixuan vhosts]# curl -x127.0.0.1:80 -udaixuan:daixuan www.test.com/admin.php

直接输出网页信息,说明用户验证配置成功


2、浏览器验证

在Firefox浏览器中输入www.test.com,点击管理中心,需要输入用户名daixuan和密码daixuan,才能登录到管理页面。

wKioL1aUosrAGZeeAAExy87K9zo757.png


你可能感兴趣的:(nginx,用户认证)