ngx_http_auth_basic_module模块配置

当我们有某个页面或者目录希望开放给特定用户来看的时候,就需要加上权限验证,这时候有人可能会想到做一套权限系统或者登录系统,但是如果我们仅仅是临时开放,完全没有必要做一套复杂的系统,这时候可是使用nginx自带的ngx_http_auth_basic_module模块,可以非常方便的实现如上的效果.

在对应nginx配置文件中增加如下配置项

location / {
    auth_basic           "closed site";
    auth_basic_user_file conf/htpasswd;
}

这里要注意的是auth_basic_user_file对应的文件,最好使用绝对路径,否则很容易出现路径错误的情况,这个文件需要使用htpasswd工具生成.

如果你的服务器上没有htpasswd,使用如下命令安装

#Ubuntu
sudo apt install apache2-utils
#CentOS
sudo yum install httpd-tools

创建用户

htpasswd -c -d conf/htpasswd zhangsan

这里的conf/htpasswd要和nginx配置中写的绝对路径匹配,否则会登录失败

htpasswd的其他命令

#删除用户
#htpasswd -D /etc/nginx/.passwd daichongweb

#修改密码
#htpasswd -d /etc/nginx/.passwd daichongweb123

#其他命令
-c:创建一个加密文件
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上
-m:默认采用MD5算法对密码进行加密
-d:采用CRYPT算法对密码进行加密
-p:不对密码进行进行加密,即明文密码
-s:采用SHA算法对密码进行加密
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码
-D:删除指定的用户