访问控制(http_access_module)
基于ip的访问控制
只能通过$remote_addr控制信任,如果有代理的话就没法确认了
配置语法
http_access_module
允许
不允许
语法
allow address | CIDR | unix: | all
deny address | CIDR | unix: | all
默认
---
---
作用域
http,server,location,limit_except
http,server,location,limit_except
备注
address:ip CIDR:网段 unix:socket方式访问 all:所有
同左
例子:
location ~ ^/admin {
root /www/nginx/access/
allow 1.198.210.118; #限制 1.198.210.118 ip 能访问
deny all; # 禁止所有人访问
}
location ~ ^/index {
root /www/nginx/access/
deny 1.198.210.118; #限制 1.198.210.118 ip 不能访问
allow all; # 允许所有人访问
}
基于用户的信任登录
配置语法
http_auth_basic_module
语法
auth_basic string | off
auth_basic_user_file file
默认
auth_basic off
---
作用域
http,server,location,limit_except
http,server,location,limit_except
备注
例子:
# 确保自己服务器上有htpasswd 没有的话安装下 httpd-tools
#centOS
yum install httpd-tools -y
返回上级目录,将密码文件放到 /etc/nginx 下
cd ../
#生成 加密密码 ./auth_conf : 生成的密码文件 kingofzihua : 用户名 -c : 创建
# 如果是第一次执行的话 用-c 表示创建 以后的话会覆盖,如果要追加 去掉 -c
htpasswd -c ./auth_conf kingofzihua
#输入密码
#确认密码
cat ./auth_conf
kingofzihua:$apr1$avun6caa$P6Te4xLkFQTEuVXKC4CPF1
#查看密码
nginx
#打开nginx配置文件 修改
# 匹配 /admin 路径
location ~ ^/admin {
...
auth_basic "Auth: input your passward!";
auth_basic_user_file /etc/nginx/auth_conf; #设置密码储存的文件
}
Last updated