Apisix自定义httpcode 请求重试

我们通过插件来做比较麻烦并且还需要考虑重新lb的问题,有一个比较简单的方法是利用nginx的请求重试信号。

Apisix本身默认也有该种设定,不过默认只针对 timeout情况会请求重试

默认请求重试次数是:updateam node 节点数量 -1

相关逻辑在apisix-balancer.luaset_balancer_opts 方法中

设置Nginx配置文件,添加请求重试判断:

我们在 ngx_tpl.lua 760行添加如下配置,示例httpcode可更换
proxy_next_upstream error timeout http_500 http_429 non_idempotent;

支持重试的httpcode可以查看 nginx官方proxy-next-upstream文档

apisix在发生请求重试时,打印的日志中 upstream-statusupstream 会依次将每次请求的结果、上游地址记录出来

相关推荐
仰科网关3 小时前
工厂环境监控传感器Modbus数据上传数据到环保局HJ212平台的项目案例
网关·modbus·vfbox·协议转换·hj212
AI_56785 小时前
Postman接口测试极速入门指南
开发语言·人工智能·学习·测试工具·lua
zhengxianyi5155 小时前
vue-cli build, vite build 生产部署刷新或弹窗404,页面空白修复方法
前端·javascript·vue.js·nginx·生产部署
IMPYLH5 小时前
Lua 的 String(字符串) 模块
开发语言·笔记·单元测试·lua
zhengxianyi5157 小时前
vite build 发布到nginx二级目录——将yudao-ui-go-view打包、部署到big目录下
vue.js·nginx·vite·前后端分离·打包·ruoyi-vue-pro优化·部署运维
移幻漂流8 小时前
Lua脚本的游戏开发优势与应用开发局限:技术对比与行业实践深度解析
开发语言·junit·lua
移幻漂流8 小时前
Lua脚本编译全解:从源码到字节码的深度剖析
开发语言·junit·lua
移幻漂流8 小时前
Lua引擎框架全景解析:从开源方案到自研实践
junit·开源·lua
JH307310 小时前
openfeign vs nginx 负载均衡对比
运维·nginx·负载均衡
移幻漂流10 小时前
Lua关键字全解析:从基础到精通的语义指南
junit·单元测试·lua