Nginx配置站点密码访问

安装工具

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个,否则返回错误信息。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据