Nginx配置访问权限

基于IP配置Nginx的访问权限

Nginx配置经过两种途径支持基本访问权限的控制,其中一种是由HTTP标准模块ngx_http_access_module支持的,经过IP来判断客户端是否拥有对Nginx的访问权限,这里包括两个指令:nginx

allow指令,用于设置容许访问Nginx的客户端IP;服务器

allow address | CIDR | all
#address,容许访问的客户端IP,不支持同时设置多个。若是有多个IP须要设置,须要重复使用allow指令
#CIDR,容许访问的客户端的CIDR地址,例如 172.10.10.1/100,前面是32位IP地址,后面“\25”表明该IP地址中前25位是网络部分,其他位表明主机部分。
#all,表明容许全部客户端访问。

从Nginx 0.8.22版本后,该命令也支持IPv6地址,好比:网络

allow 2620:100:e000::8001;函数

deny指令,与allow正好相反,用于设置禁止访问Nginx客户端IP学习

deny address | CIDR | all;加密

这两个指令能够在http块、server块或者location块中配置。spa

1 location / {
2     deny 192.168.1.1;
3     allow 192.168.1.0/24;
4     deny all;
5 }

 在以上例子中192.168.1.0/24客户端是能够访问的。由于,Nginx配置在解析的过程当中,遇到deny指令或者allow指令是按照顺序对当前客户端的链接进行访问权限检查的。若是遇到匹配的配置时,则中止继续向下搜索相关配置。所以,当192.168.1.0/24客户端访问时,Nginx在第三行解析配置发现容许该客户端访问,就不会继续向下解析第4行了。code


基于密码配置Nginx的访问权限

Nginx 还支持基于HTTP Basic Authentication 协议的认证。该协议是一种 HTTP 性质的认证办法,须要识别用户名和密码,认证失败的客户端不拥有访问Nginx服务器的权限。该功能由 HTTP 标准模块 ngx_http_auth_basic_module 支持,这里有两个指令须要学习。server

    auth_basic指令,用于开启或者关闭该认证功能,语法结构为:blog

auth_basic string | off;

其中,file为密码文件的绝对路径。

这里的密码文件支持明文或者密码加密后的文件。明文的格式以下所示:

1 name1:password1
2 name2:password2:comment
3 name3:password3

加密密码可使用crypt()函数进行密码加密的格式,也可以使用htpasswd命令生成:

htppasswd d:\nginx\conf\htpasswd username

 

myzhao是认证的帐户名称,须要输入两次密码,而后htppasswd文件中保存的就是加密后的密码:

htppasswd(第三个冒号后可作注释也可没有):

myzhao:$apr1$JAVltvyq$4k0V5tWy0Ec0JI5eiZrfJ.:123456

 五、6两行这次新增的配置:

1 location /software {
2     autoindex on;
3     autoindex_exact_size off;
4     autoindex_localtime on;
5     auth_basic            "Restricted"; 
6     auth_basic_user_file  htpasswd;
7 }
相关文章
相关标签/搜索