获取全套nginx教程,请访问瓦力博客
nginx常见的访问控制第一个基于ip的访问控制http_access_module
模块,第二个基于用户的信任登录http_auth_basic_module
模块,下面小菜就简单说明这两个模块如何进行nginx的访问控制。在此之前
小菜先放上这两个模块的文档地址。
● http_access_module{:target="_blank"}
● http_auth_basic_module{:target="_blank"}
1.http_access_module
1.allow
Syntax: allow address | CIDR | unix: | all;
Default: —
Context: http, server, location, limit_except
2.deny
Syntax: deny address | CIDR | unix: | all;
Default: —
Context: http, server, location, limit_except
名词解释
address 指IP地址(192.168.1.1)
CIDR 指网段(192.168.1.0/24)
unix 主要是在linux和unix用到的socket访问
all 所有人访问
示例配置
1.禁止114.86.45.85
访问,允许所有ip访问
location / {
root /opt/app/code;
deny 114.86.45.85;
allow all;
index index.html index.htm;
}
2.允许222.128.189.0/24
网段ip访问,禁止所有ip访问
location ~ /{
root /opt/app/code;
allow 222.128.189.0/24;
deny all;
index index.html index.htm;
}
allow 和 deny是配合使用的。
局限性
如果客户端使用代理来访问网站,这样就不能保证禁止或允许某些ip访问。
2.http_auth_basic_module
1.auth_basic
Syntax: auth_basic string | off;
Default: auth_basic off;
Context: http, server, location, limit_except
2.auth_basic_user_file
Syntax: auth_basic_user_file file;
Default: —
Context: http, server, location, limit_except
示例配置
新建一个密码文件,名称为auth_conf,用户名为wali,回车后输入密码123456,确认密码
htpasswd -c ./auth_conf wali
location ~ ^/admin.html {
root /opt/app/code;
auth_basic "Auth access test!input your passward!";
auth_basic_user_file /etc/nginx/auth_conf;
index index.html index.htm;
}
重新服务
nginx -s reload -c /etc/nginx/nginx.conf
然后在访问http://walidream.com,就会先让你输入密码。输入正确然后才能访问。
3.局限性
● 用户信息依赖文件方式
● 操作管理机械,效率低下