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

相关推荐
.柒宇.8 小时前
nginx入门教程
运维·nginx
捷米特网关模块通讯8 小时前
EtherNet/IP 转 CC-Link IE 工业 PLC 网关稳定对接罗克韦尔与三菱系统
网关·数据采集·三菱plc·工业自动化
如来神掌十八式19 小时前
nginx + spring gateway+spring 服务_nginx 转发到 gateway
nginx·spring·gateway
hotlinhao19 小时前
Nginx rewrite last 与 redirect 的区别——Vue history 模式短链接踩坑记录
前端·vue.js·nginx
VT LI1 天前
Lua 源码执行流程全解析:词法分析、语法分析、字节码生成、虚拟机执行与垃圾回收
java·开发语言·lua
历程里程碑2 天前
二叉树---二叉树的中序遍历
java·大数据·开发语言·elasticsearch·链表·搜索引擎·lua
tryCbest2 天前
Nginx常用操作命令-Linux和Windows系统
linux·windows·nginx
難釋懷2 天前
Nginx实现本地缓存查询
nginx·spring·缓存
ZzzZZzzzZZZzzzz…2 天前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
上海合宙LuatOS3 天前
LuatOS扩展库API——【exremotefile】远程文件管理系统
物联网·lua·luatos