Nginx之让用户通过用户名密码认证访问web站点

有时我们会有这么一种需求,就是你的网站并不想提供一个公共的访问或者某些页面不希望公开,我们希望的是某些特定的客户端可以访问。

那么我们可以在访问时要求进行身份认证,就如给你自己的家门加一把锁,以拒绝那些不速之客。

一、查看当前系统参数 

uname -r      //查看系统内核版本号
3.13.0-32-generic

cat /etc/lsb-release         //查看系统版本号 
Ubuntu 14.04.1 LTS

二、通过htpasswd命令生成用户名及对应密码数据库文件

   htpasswd命令找不到可以: 

sudo apt-get install apache2-utils

 生成用户名密码对应文件:

[root@rhel6u3-7 server]# htpasswd -c ./soft.pw chenlu    //创建认证信息,chenlu 为认证用户名 

New password: *******  //输入认证密码 

Re-type new password: ********  //再次输入认证密码 

Adding password for user chenlu
   
[root@rhel6u3-7 ~]# cat ./soft.pw  //可以看到通过htpasswd生成的密码为加密格式 

chenlu:$apr1$SMeDVtmH$H8uXEjIGV329v49O/9pCn/

三、编辑虚拟主机配置文件  

server {

        listen  8093;

        server_name localhost;

        autoindex on;

        charset utf-8;

        root /data/download;

        location / {
            index  index.html index.htm;
            auth_basic "secret";
            auth_basic_user_file /data/service/nginx/conf/passwd/soft.pw;
        }

        error_page   500 502 503 504  /50x.html;


        location = /50x.html {
            root   html;
        }
}

四、平滑重启nginx服务

sudo /data/service/nginx/sbin/nginx -s reload

如图:

  

原文地址:https://www.cnblogs.com/zhuiluoyu/p/5462916.html