Nginx配置Basic Auth登录认证

Http Basic Auth验证可以对网站的资源进行部分或者全部限制性访问,当然也可以进行地域或者IP限制访问,这在某些特定的场景下是非常快捷的方式。
本文只讨论在nginx中配置Basic Auth,其他服务器稍有差异。

nginx中如何配置Basic Auth

location / {
    auth_basic           "closed site";
    auth_basic_user_file conf/htpasswd;
}

参考ngx_http_auth_basic_module

Basic Auth文件

从上面的配置中可以发现,需要一个conf/htpasswd文件,文件的内容格式如下:

# comment
name1:password1
name2:password2:comment
name3:password3

如何生成Basic Auth用户密码

用户密码的生成需要借助工具,apache2-utils(Debian,Ubuntu)或httpd-tools(RHEL / CentOS / Oracle Linux
具体操作如下:

$ apt-get install apache2-utils
$ sudo htpasswd -c /etc/apache2/.htpasswd user1

当您访问状态页面时,系统会提示您登录:

如果提供的名称和密码与密码文件不匹配,则会出现错误。401 (Authorization Required)

使用场景

  • 站点不对搜索引擎开发
  • 站点调试信息,只对开发者开发
  • 站点资源简单的用户验证
什么是彩虹表(Rainbow Table)
如何在WordPress中批量发布你的草稿?