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 会依次将每次请求的结果、上游地址记录出来

相关推荐
Arya_aa15 小时前
检疫登记模块图片上传,nginx自动映射地址
spring boot·nginx
全栈工程师修炼指南16 小时前
Nginx | 磁盘IO层面性能优化秘诀:error 日志内存环形缓冲区及小文件 sendfile 零拷贝技术
运维·网络·nginx·性能优化
ywgcsxue16 小时前
在麒麟V10上源码编译安装Nginx
linux·运维·服务器·nginx
Cyber4K20 小时前
【Nginx专项】基础入门篇-访问限制及访问控制
linux·运维·服务器·nginx
上海合宙LuatOS20 小时前
LuatOS扩展库API——【extp】触摸控制
嵌入式硬件·物联网·lua·luatos
Arya_aa21 小时前
通过nginx访问文件资源
nginx
上海合宙LuatOS1 天前
LuatOS扩展库API——【exvib】震动检测
开发语言·物联网·lua·luatos
TechExplorer3651 天前
Postman 9.12 安装、汉化、禁用更新
测试工具·lua·postman
liulilittle2 天前
Lua 浮点数比较
开发语言·junit·lua
如来神掌十八式2 天前
nginx基础知识
运维·nginx