1. 闲不住的人首页
  2. 网站服务

Nginx身份验证模块

ngx_http_auth_basic_module 模块,实现用户访问某页面时要求用户进行认证,认证通过方可访问页面。

官方示例:

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

配置指令:

# 使用basic机制进行用户认证;
Syntax:	 auth_basic string | off;
Default: auth_basic off;
Context: http, server, location, limit_except

# 认证用的账号密码文件;
Syntax:	  auth_basic_user_file file;
Default:  —
Context:  http, server, location, limit_except

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

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

密码格式:可以使用 httpd 服务自带的 htpasswd 命令生成账号密码文件;

示例:要求用户访问 『http://10.100.4.169/admin』时需要进行认证;

1、首先安装 httpd 服务获取 htpasswd 命令

root@opsbj-nginx:~ # yum -y install httpd

2、创建一个用户 test 用户

root@opsbj-nginx:~ # htpasswd -c -m /etc/nginx/.htpasswd test
New password: # 输入密码
Re-type new password: # 重复输入密码
Adding password for user test

注意:只有第一次创建用户时,需要使用 -c 参数,创建第二个用户时仅用 -m 就可以了。

3、配置虚拟主机

root@opsbj-nginx:~ # cat /etc/nginx/conf.d/demo.conf
server {
  listen 80;
  server_name 10.100.4.169;
  index index.html index.htm;
  access_log /var/log/nginx/demo_access.log;

  location / {
    root /data/demo/;
    deny 10.100.4.181;
    allow 10.100.4.0/24;
    deny all;
  }

  # ngx_http_auth_basic 模块示例如下面代码
  location /admin {
    root /data/demo;
    auth_basic "Enter username and password.";
    auth_basic_user_file /etc/nginx/.htpasswd;
  }
}
root@opsbj-nginx:~ # nginx -s reload
root@opsbj-nginx:~ # mkdir /data/demo/admin
root@opsbj-nginx:~ # echo "<h1>Test Admin Demo Pages</h1>" > /data/demo/admin/index.html

重载 Nginx 服务访问 http://10.100.4.169/admin/ 测试;

输入用户密码
输入用户密码

输入上面创建的用户名和密码后如下图:

登录成功访问认证页面
登录成功访问认证页面

原创文章,作者:恩志,如若转载,请注明出处:https://www.xbzdr.com/297.html

发表评论

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

联系我们

在线咨询:点击这里给我发消息

邮件:510749025@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code