[总结]openresty 限流count.lua:53:attempt to call method 'expire' (a nil value)报错排查

        最近在研究openresty 1.13.6.1版本限流方案,参考该文档:https://github.com/openresty/lua-resty-limit-traffic/blob/master/lib/resty/limit/count.md 编写了一个时间窗内调用总次数限流Demo,可是测试时,遇到如下问题:


2018/03/20 12:38:05 [error] 33074#814554: *1 lua entry thread aborted: runtime error: ...l/Cellar/openresty/1.13.6.1/lualib/resty/limit/count.lua:53: attempt to call method 'expire' (a nil value)

stack traceback:

coroutine 0:

...l/Cellar/openresty/1.13.6.1/lualib/resty/limit/count.lua: in function 'incoming'

conf/limit_frequency.lua:18: in function 'incoming'

...IdeaProjects/luaapp/work/conf/access_limit_frequency.lua:8: in function <...IdeaProjects/luaapp/work/conf/access_limit_frequency.lua:1>, client: 10.202.97.23, server: , request: "GET /limitFrequency HTTP/1.1", host: "10.202.97.23:8080"



报错的直接原因是:openresty/1.13.6.1/lualib/resty/limit/count.lua:53: attempt to call method 'expire' (a nil value)

当时把该错误google了一把,没有找到任何解决方法。于是乎把该错误发到google 讨论组里,https://groups.google.com/forum/#!forum/openresty 很快就有人回应了。原来是我没有在http{} 配置块内添加resty.core依赖: 

   init_by_lua_block {

        require "resty.core"

    }


其实参考文档内有说明依赖resty.core,且原文demo中也有配置init_by_lua_block……

怪自己太粗心,原文文档都没仔细阅读。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长乐smile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值