如何在nginx下实现访问web网站密码认证保护的功能

在某些特定的环境下,咱们但愿nginx下的web站点在访问时须要用户输入帐户密码才能访问。以便拒绝那些不速之客。html

其实,配置起来也很简单,按照下面的步骤便可实现。nginx

1、编辑虚拟主机配置文件。web

server { 
     listen       80;  //监听端口为80 
     server_name  www.abc.com;  //虚拟主机网址 
     location / { 
            root   sites/www1;  //虚拟主机网站根目录 
            index  index.html index.htm;  //虚拟主机首页 
            auth_basic "secret";  //虚拟主机认证命名 
            auth_basic_user_file /usr/local/nginx/passwd.db; //虚拟主机用户名密码认证数据库 
      } 
      #省略其余配置
      ....
}

 

 

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

[root@localhost /]#mkdir /usr/local/nginx
[root@localhost /]#vi /usr/local/nginx/passwd.db
[root@localhost /]# htpasswd -c /usr/local/nginx/passwd.db admin  //建立认证信息,admin 为认证用户名 
New password: *******  //输入认证密码 
Re-type new password: ********  //再次输入认证密码 
Adding password for user admin 
[root@localhost /]# chmod 400 /usr/local/nginx/passwd.db      //修改网站认证数据库权限 
[root@localhost /]# chown nginx.  /usr/local/nginx/passwd.db  //修改网站认证数据库属主和属组
[root@localhost /]# cat /usr/local/nginx/passwd.db            //能够看到经过htpasswd生成的密码为加密格式
admin:x/J1o94NgIV2k

3、从新启动nginx便可生效。网站

service nginx reload

 

经过上面的三个步骤便可完成在nginx下实现访问web网站密码认证保护的功能。加密

相关文章
相关标签/搜索