nginx针对客户端ip进行限制:外网访问需要密码认证

nginx访问限制:限制客户端ip及需要用户名密码认证


一、
nginx访问需要用户名密码认证

nginx访问需要用户名密码认证使用的模块是ngx_http_auth_basic_module,这个模块允许使用"HTTP基本验证"协议进行用户名密码验证来限制资源的访问,

nginx访问限制也可以通过
客户端ip来限制用户的访问。同时限制客户端ip访问和需要用户名密码认证,需要使用指令statisfy


1、配置例子

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

2、指令说明

语法:auth_basic string | off;
默认:auth_basic off;
所属指令:
http, server, location, limit_except

开启使用
“HTTP Basic Authentication”协议的用户名密码认证。指定的参数被用作为标识符,提示你访问页面的大概信息(可以随意指定,但建议指定跟所限制内容相关的字符串)。参数off可以关闭继承自上一个配置等级的认证要求,即在server中开启了认证,但是我们可以关闭某一个目录的用户名密码认证要求。

语法:auth_basic_user_file file;
默认:-
所属指令:http, server, location, limit_except

指定一个保存有用户名密码认证内容的文件路径,文件内容格式是

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

密码应该使用函数crypt()来加密。可以使用Apache中自带的htpasswd命令来建立这样一个用于用户名密码认证的文件。

二、nginx限制客户端ip访问

nginx限制客户端ip访问使用的模块是
ngx_http_access_module,这个模块可以进行nginx限制客户端ip访问。
nginx访问限制也可以用用户名密码认证来实现。
同时限制客户端ip访问和需要用户名密码认证,需要使用指令statisfy

1、配置示例

location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}

规则按顺序检测,至道第一个匹配的规则出现。在这个例子中,只允许IPV4的10.1.1.0/16和192.168.1.0/24中出去192.168.1.1及IPV6中的2001:0db8::/32来访问,其他的客户端ip访问都是不允许的。

为了预防有太多的规则,使用模块ngx_http_geo_module是更可取的。

2、指令

语法:allow address | CIDR | all;
默认:

所属指令:http, server, location, limit_except

指定的IP地址己网段都可以访问。

语法:deny
address | CIDR |all;
默认:

所属指令:http, server, location, limit_except

指定的IP地址及网段都不可以访问。

三、nginx同时限制客户端ip与用户名密码认证

nginx同时限制客户端ip于用户名密码认证,需要使用指令satisfy

语法:satisfy all|deny;
默认:satisfy all;

所属指令:http, server, location

是否要求模块和中的所有
ngx_http_auth_basic_modulengx_http_access_module任意一个认证通过才可以访问。

例子

location / {
    satisfy any;

    allow 192.168.1.0/32;
    deny  all;

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

Linux大师之路首页链接:http://www.linuxmr.com/
该中文文档目录链接:http://www.linuxmr.com/cms_chinese_doc/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值