当我们有某个页面或者目录希望开放给特定用户来看的时候,就需要加上权限验证,这时候有人可能会想到做一套权限系统或者登录系统,但是如果我们仅仅是临时开放,完全没有必要做一套复杂的系统,这时候可是使用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:删除指定的用户