Nginx之10灵犀一指 – (访问认证)

什么是访问认证

  当我们网站对互联网开放时,但又想只有部分有权限的人才能进行访问。这是我们可以采用用户认证的方式进行限制,Nginx中提供了ngx_http_auth_basic_module模块来进行处理这项工作,此模块Nginx默认已经安装。

如何配置访问认证

server    {
listen 80;
server_name nginx.yekangming.com;
auth_basic "Restricted Access";
auth_basic_user_file /usr/local/nginx/auth/htpasswd;
location / {
root /data/webroot/nginx;
index index.html;
}
}

Nginx basic auth 语法

语法: auth_basic <string | off>
默认值: off
配置段: http, server, location, limit_except

语法: auth_basic_user_file <file>;
默认值: null
配置段: http, server, location, limit_except

用户密码文件,文件内容类似如下:
user1:password1
user2:password2:comment

  创建用户时,会提示输入密码

htpasswd -c  /usr/local/nginx/auth/htpasswd <userName>

  如果没有此命令时可以通过yum安装

yum -y install httpd-tools

小知识

  一般对于需要控制用户访问的场景,可以配置allow及deny指定进行配合使用。

allow: 允许单个IP地址或者IP地址段访问
语法: allow address | CIDR | unix: | all;
默认值: null
配置段: http, server, location, limit_except

deny: 拒绝单个IP地址或者IP地址段访问
语法: deny address | CIDR | unix: | all;
默认值: null