nginxs

运维博客

06-nginx访问控制“限制ip”,“限制用户名”

2016/05/18 23:14 于 web 0

微信 微博 豆瓣 人人

介绍在一些特定的情况下nginx需要限制用户的访问例如根据一下条件:根据IP,根据用户,根据请求方法等。

方式1:通过location里面IP限制请求,被限制请求返回403,如果要ipv6的限制编译安装的时候需要编译“ --with-ipv6”语法:(allow|deny) address | CIDR | unix: | all;
作用域: http, server, location, limit_except

举例:限制ip:除去192.168.1.158不可以访问,“192.168.1.0/24”网段其他用户可以访问,除此之外的其它ip不可以访问。

    server {
...
deny 192.168.1.158;
allow 192.168.1.0/24;
deny all;
}

根据用户名密码限制

创建密码文件

    [root@localhost nginx-new]# htpasswd -c ./passwdfile  admin  #添加用户名为admin
New password: #此处输入密码
Re-type new password: #再次输入密码
Adding password for user admin
[root@localhost nginx-new]# cat passwdfile
admin:tKAyBpIh8xdyk
[root@localhost nginx-new]# mv passwdfile conf/
location /images/
{
auth_basic "Test login";
auth_basic_user_file passwdfile;
root /usr/local/kafka/html;
}

请求地址http://new.nginxs.net/images/aaa.jpg

satisfy 让你更加灵活使用多种验证方式

允许访问如果所有(all)或至少一个(any)模块通过验证才可以访问。( ngx_http_access_module, ngx_http_auth_basic_module or ngx_http_auth_request_module)
默认是: satisfy all;必须通过所有验证

语法: satisfy [ all | any ]
使用字段:http, server, location
在下面配置里面使用了access模块和auth basic模块验证, satisfy any;就是说只要匹配到两种模块中的一种便可以正常访问

            location /images/
{
satisfy any;
deny 192.168.1.1;
deny all;
auth_basic "Test login";
auth_basic_user_file passwdfile;
root /usr/local/kafka/html;
}

nginx教程

第一章 nginx安装基本引导和进程信号

02-nginx IO模型

03-nginx负载均衡

04-nginx的root和alias区别

05-nginx limit_req和limit_conn_zone

06-nginx访问控制“限制ip”,“限制用户名”

nginxnginx用户密码限制nginx限制ip访问nginx ip白名单nginx ip黑名单

发表评论
已登录为 [退出]


管理