openresty 提供的几个新的生命周期阶段指令

实际上这几个指令很早就有了,只是最近在重新学习openresty 的时候发现的

exit_worker_by_lua_*

在每次nginx worker 进程退出的时候执行,当master 进行禁用的时候,这个钩子会在nginx 进程退出之前执行
主要的场景是进行资源释放,以及worker 非正常退出

server_rewrite_by_lua_*

在server rewrite 阶段的处理,对于每个请求都会执行,同时也会包含时候是子请求状态,同时我们也可以调用暴露的
lua api,注意会使用独立的协程(类似沙箱环境)对于共享的可以使用ctx 以及shared 字典,或者db
注意如果为了退出当前请求,ngx.exit(ngx.OK) 是不起作用的,需要使用ngx.exit 对于状态码泗洪>=200 <300 代表正常,ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)
表示执行失败

说明

以上几个新指令还是比较有用的,很值得尝试下

参考资料

https://github.com/openresty/lua-nginx-module#exit_worker_by_lua_block

posted on   荣锋亮  阅读(392)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-05-01 cubestore 使用需要注意的一些问题
2021-05-01 cubestore 运行试用
2021-05-01 cube.js cubestore 生产可用了
2020-05-01 lightproxy 阿里巴巴开源的基于proxy 的web debug 工具
2020-05-01 chartjs-plugin-datasource-prometheus 展示prometheus 数据
2020-05-01 Autopilot Pattern Applications 开发模式
2020-05-01 containerpilot 容器应用的自动服务发现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示