Nginx网站加密验证

Published on 2016 - 07 - 03

使用Nginx加密主页或者某些页面

编辑虚拟主机配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf //主配置文件中http字段中添加以下语句,将虚拟主机的配置文件指向www.richge.com
include /usr/local/nginx/server/www.richge.com;
[root@localhost ~]# vim /usr/local/nginx/server/www.richge.com
server {
 listen       80;  //监听端口为80
 server_name  www.richge.com;  //虚拟主机网址
 location / {
        root   sites/www;  //虚拟主机网站根目录
        index  index.html index.htm;  //虚拟主机首页
        auth_basic "secret";  //虚拟主机认证命名
        auth_basic_user_file /usr/local/nginx/passwd.db; //虚拟主机用户名密码认证数据库
    }
    location /status {
            stub_status on;  //开启网站监控状态
            access_log /usr/local/nginx/logs/access.log; //监控日志
            auth_basic "NginxStatus"; }
        }

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

[root@localhost server]# htpasswd -c /usr/local/nginx/passwd.db rich  //创建认证信息,rich 为认证用户名
New password: *******  //输入认证密码
Re-type new password: ********  //再次输入认证密码
Adding password for user rich
[root@localhost server]#
[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生成的密码为加密格式
rich:8eZAz7BqcrXmY
[root@localhost ~]#

重启Nginx

完成

htpasswd 添加账户

htpasswd /usr/local/nginx/passwd.db rich
New password: *******  //输入认证密码
Re-type new password: ********  //再次输入认证密码