nginx是一个高性能的web,越来越多的用户使用,如果您的某个站点不希望对外公开(比如phpmyadmin),可以使用htpasswd实现nginx验证访问。
安装htpasswd
htpasswd是apache密码生成工具,nginx支持auth_basic认证,因此我门可以将生成的密码用于nginx中,输入一行命令即可安装:yum -y install httpd-tools ,参数如下:
-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容. -n 不更新passwordfile,直接显示密码 -m 使用md5加密(默认) -d 使用crypt加密(默认) -p 使用普通文本格式的密码 -s 使用sha加密 -b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互 -d 删除指定的用户
生成密码
#进入home目录 cd /home #生成密码 htpasswd -c ./passwd username #执行上命令后会要求输入两次密码,./passwd 是在当前目录下创建密码文件passwd ,username即为需要设置的账号
如果你不想安装htpasswd,也可以通过来完成。
载入配置
接下来在nginx配置文件中(通常是server段内),加入如下两行,并重载nginx(service nginx reload)即可生效。
auth_basic "please input password"; #这里是验证时的提示信息 auth_basic_user_file /home/passwd;
访问测试
再访问站点,提示需要输入用户名和密码才可以访问,此方法适合不宜公开的站点,比如phpmyadmin,这样可避免被弱口令扫描,无疑再上了一把锁。