在生产环境中,网站需要授权访问的场景非常之多,比如数据库管理工具:phpMyAdmin
、MysqlUp
、BackUp
等等。有时还需要一些私有目录文件的保护,为了实现这一伟大目标,我们就需要用到Nginx
location
匹配规则,下面将进行讲解。
1.创建htpasswd文件
$ vim /usr/local/nginx/conf/htpasswd 添加以下内容:
renwole:xEmWnqjTJipoE
此文件的书写格式是:
用户名:密码
注意:每行一个用户和密码,这里的password
不是明文,而是将password
进行crypt(3)加
密后的字符串。
2.密码生成
可以打开以下网址输入用户信息进行密码生成:
//tool.oschina.net/htpasswd
3.Nginx加密目录配置
在Nginx虚拟主机配置文件中的合适区域加入以下内容:
如果保护tools目录:
location ^~ /tools/ { auth_basic "Restricted Area"; auth_basic_user_file conf/htpasswd; }
说明:若不加 ^~
只能对目录进行弹窗验证,访问此目录下的文件则无需验证。
如果保护整个网站根目录:
location / { auth_basic "Restricted Area"; auth_basic_user_file conf/htpasswd; }
添加需要保护的目录后,重载Nginx配置文件,否则不生效。