Nginx访问路径添加密码保护

创建口令文件

用openssl命令创建口令

openssl passwd -apr1

会产生一个hash口令, 然后和用户名一起, 以[用户名]:[hash口令]的格式写入文本文件即可

例如创建一个名为 site_passwd 的文件, 放到nginx的conf目录的 htpasswd 目录下

mycat:$apr1$s2XP.Vxi$CWQHb8GDsPThsBR6HD4/F/
milton:$apr1$BZImjdgT$PJ9Dq08hwi5XrBxIHev/W/

如果有htpasswd命令, 也可以直接用下面的命令创建, 这个命令来自于 apache2-utils

htpasswd -c site_passwd mycat

 

Nginx配置文件修改

对于需要口令限制的目录, 创建一个单独的location (如果已经有, 则加在已经有的配置上). 例如这里限制的是demo这个路径下的访问. 对于前缀为/的location里的配置, 需要在这个location里重新填一遍, 配置了/demo后, /的配置在这个路径下不再起作用.

    location / {
        root   /var/wwwroot/site;
        index  index.html index.htm index.php;
    }

    location /demo {
        root   /var/wwwroot/site;
        index  index.html index.htm index.php;
        auth_basic "Restricted Content";
        auth_basic_user_file htpasswd/site_passwd;
    }

reload后访问就会弹出口令输入了.

sudo systemctl reload nginx

 

posted on 2019-06-17 17:15  Milton  阅读(1154)  评论(0编辑  收藏  举报

导航