Openresty实现黑名单

本文介绍了如何使用Openresty结合Lua脚本实现IP黑名单功能。在Openresty的access阶段实施限制,讨论了将黑名单存储在table、Redis数据库中的不同方案,并选择了在Redis中拉取数据到内存中以提高效率的实现方式。提供了具体代码示例展示在init_worker_by_lua阶段设置定时器以及access阶段的检查逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        首先先简要介绍下Openresty。Openresty可以让开发人员使用Lua编程语言对nginx核心以及现有的各种Nginx C模块进行脚本编程,构建出一个高性能的Web应用。Openresty分为4个大阶段,包括Initialization Phase,Rewrite/Access Phase,Content Phase以及Log Phase,每个阶段的功能见下表1,而这四个大阶段又可分为11个小阶段,如下表2所示。

表1 Openrety的四个大阶段
阶段 功能
Initialization Phase(初始化阶段)

Master进程预加载/

Worker进程预加载

Rewrite/Access Phase(转发/访问阶段) Url转发,权限判断
Content Phase (内容处理/生成阶段) 内容生成
Log Phase(日志记录阶段) 日志记录

表2 Openresty的11个小阶段
序号 阶段 指令 使用范围 说明 用途
1 loading-config

init_by_lua

init_by_lua_block

init_by_lua_file

http 当Nginx master进程在加载Nginx配置文件的时候,在全局Lua VM级别上与运行。 初始化全局配置/预加载Lua模块
2 starting-worker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值