安装工具
apt-get install apache2-utils
使用
htpasswd -c /usr/local/nginx/conf/htpasswd user
其中,/usr/local/nginx/conf/htpasswd
为配置文件的绝对路径,user为要新增的用户。
其他参数
- -c:创建一个加密文件
- -n:不更新加密文件,只将加密后的用户名密码显示在屏幕上
- -m:默认采用MD5算法对密码进行加密
- -d:采用CRYPT算法对密码进行加密
- -p:不对密码进行进行加密,即明文密码
- -s:采用SHA算法对密码进行加密
- -b:在命令行中一并输入用户名和密码而不是根据提示输入密码
- -D:删除指定的用户
配置Nginx
编辑虚拟主机的配置文件,一般在.../nginx/conf/vhost/
下面。
在对应页面的server或者location下面添加如下内容。
auth_basic 'Restricted';
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
写好后重启一下nginx,之后访问这个页面的时候应该就会弹出账号密码提示框了。
访问限制
为了防止暴力破解,我们可以用nginx的ngx_http_limit_req_module模块进行访问限制,比如说:
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
...
server {
...
location /search/ {
limit_req zone=one burst=5;
}
}
}
上述配置的意思为:一秒处理不超过1个请求,突发请求不超过5个,否则返回错误信息。