Nginx基于用户的访问控制


配置详解

Nginx的auth_basic指令可根据预先设置的用户名和密码对web站点进行简单的访问控制,auth_basic指令由ngx_http_auth_basic_module模块提供,对HTTP Basic Authentication协议进行了支持。

语法规则

  • auth_basic 启用或关闭认证;
  • auth_basic_user_file 密码文件;

配置说明

1、auth_basic:启用或关闭认证。

  • 字符串:使用双引号引用的任意字符串,用于用户输入密码时给予提示。
  • off:关闭认证,通常用于关闭上一级模块启用的认证需求。

注意事项

auth_basic指令针对不同的作用域可以配置在http、server、location和limit_except块中。

配置示例

用户密码文件的创建

1、安装httpd-tools模块。

nginx

2、创建密码文件并加入用户和密码,命令为:htpasswd -c 文件 用户,密码文件名称与路径自定义。

nginx
  • htpasswd −c /etc/nginx/.htpasswd yuan:创建密码文件/etc/nginx/.htpasswd并添加用户yuan,−c选项表示文件不存在时自动创建,当有多个用户需要添加时可以去掉选项−c再次执行此命令。
  • New password/Retype new password:输入密码与确认密码。

3、查看密码文件,密码已进行加密处理。

nginx

指令的配置与测试

1、在需要进行认证的模块中添加指令。

1.1、要对某一类请求进行认证可以添加在location块中。

nginx

1.2、重新加载配置文件后进行访问测试。

 •  对需要认证的请求,会弹出密码框要求用户输入。

nginx

 •  若用户名或密码输入错误会要求再次输入,若不输入直接访问则会返回401错误页面。

nginx

 •  对不需要认证的请求,会直接返回结果页面。

nginx

2、在不需要进行认证的模块中禁用指令。

2.1、要对多个类型的请求进行认证可以添加在server块中,再使用off指令将不需要认证的模块排除。

nginx

2.2、重新加载配置文件后进行访问测试,效果同上。


发表评论

评论数量:0