当前位置: 首页 > 图灵资讯 > 技术篇> Nginx怎样实现 IP黑名单

Nginx怎样实现 IP黑名单

来源:图灵教育
时间:2023-05-31 09:22:24

实现IP黑名单的途径有很多,总结了以下三种:

1、在操作系统层面,配置 iptables,拒绝指定 IP 网络请求;

2、通过Nginx 自己的deny 选项 或者 lua 插件配置 IP 黑名单;

实现方法:

a. 在配置文件目录下:如/usr/local/nginx在/conf下创建黑名单文件ip_black.conf;

b. 列入黑名单的IP以deny的格式写入文件内容 IP;

deny xxxx.xxxx.xxx.xx

c. nginx在nginx的配置文件中.在conf中加入以下配置,可以放入http, server, location, limit_except句块需要注意相对路径

http{

include ip_black.conf;

}

3、在应用层面,请求服务前检查客户端 IP 是否列入黑名单。通过 Nginx+Lua+Redis 的架构实现 IP 黑名单的功能

a. 安装 Nginx+Lua模块, 安装redis集群

b.在 Redis 上新建 Set 类型的数据 ip_blacklist,加入最新的 IP 黑名单

c. 编写luaj脚本

d.配置nginx,在配置文件中引用Lua脚本,每次请求后执行脚本

总结:

使用 Nginx+Lua + redis 的方式:

1、配置简单,重量轻,几乎不影响服务器性能;

2、多个服务器可以通过Redis实例共享黑名单;

3、动态配置可以手动或自动设置 Redis 黑名单。