HttpAuthBasic模块

该模块可以使你使用用户名和密码基于 HTTP 基本认证方法来保护你的站点或其部分内容。

实例配置

  1. location / {
  2. : auth_basic "Restricted";
  3. : auth_basic_user_file conf/htpasswd;
  4. }

指令

  • [#auth_basic auth_basic]
  • [#auth_basic_user_file auth_basic_user_file]

    auth_basic

语法:*auth_basic [ text|off ]*

默认值:*auth_basic off*

作用域:*http, server, location, limit_except*

该指令包含用于 HTTP 基本认证 的测试名和密码。分配的参数用于认证领域。值 "off" 可以使其覆盖来自上层指令的继承性。

auth_basic_user_file

语法:*auth_basic_user_file the_file*

默认值:*no*

作用域:*http, server, location, limit_except*

该指令为某认证领域指定 htpasswd 文件名。

文件格式类似于下面的内容:

  1. 用户名:密码
  2. 用户名2:密码2:注释
  3. 用户名3:密码3

密码必须使用函数 crypt(3) 加密。 你可以使用来自 Apache 的 htpasswd 工具来创建密码文件。

你也可以使用perl 创建密码文件,pw.pl 的内容:

  1. #!/usr/bin/perl
  2. use strict;
  3. my $pw=$ARGV[0] ;
  4. print crypt($pw,$pw)."\n";

然後執行

  1. chmod +x pw.pl
  2. ./pw.pl password
  3. papAq5PwY/QQM

papAq5PwY/QQM 就是password 的crypt()密码

参考

原始文档

原文: https://wizardforcel.gitbooks.io/nginx-doc/content/Text/3.4_httpauthbasic.html