nginx中文文档-ngx_http_auth_basic_module

ngx_http_auth_basic_module模块允许通过HTTP基础认证方式使用用户名密码来限制对资源的访问。访问同样可以通过地址和子请求结果进行限制。同时通过地址和密码限制访问可以由satisfy指令进行控制。

示例配置

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

auth_basic

语法:auth_basic string | off
默认:auth_basic off
上下文:http, server, location, limit_except

允许通过HTTP基础认证协议验证用户名和密码。定义的参数使用realm,参数值可以包含变量(1.3.10+, 1.2.7+)。off值会取消由上层继承下来的auth_basic值。

auth_basic_user_file

语法:auth_basic_user_file file
默认:—
上下文:http, server, location, limit_except

定义保存用户名和密码的文件,格式如下:

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

文件名可以包含变量。
支持以下密码类型:

  • crypt函数加密的密码。可以通过Apache服务器的“htpasswd”应用或“openssl passwd”命令生成。
  • Apache基于MD5算法的变体哈希算法,可通过同一个工具生成
  • 通过“{scheme}data”语法定义(1.0.3+),详细描述见RFC 2307。目前实现的模式有PLAIN(举例,不应该使用)、SHA(1.3.13+)(plain SHA-1不应使用)、SSHA(加盐SHA-1)

添加对SHA模式的支持,只是便于从其他服务器的迁移。不应该用于新的密码,因为不加盐的SHA-1哈希算法易受彩虹表攻击。