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

相关推荐
林鸿群2 分钟前
游戏客户端创建大联盟报错:[LUA-print] onSubOperateFailure 1 由于数据库操作异常,请稍后重试!解决
游戏·lua·cocos2d-x·链接服务器
Java小白笔记23 分钟前
Nginx中配置IP白名单动态刷新
运维·tcp/ip·nginx
小尔¥31 分钟前
Nginx性能优化与监控
运维·nginx·性能优化
星空露珠35 分钟前
又双叒叕统计被炸死的lua脚本
开发语言·数据结构·算法·游戏·lua
yy55272 小时前
Nginx 安全防护与 HTTPS 部署实战
nginx·安全·https
WangJunXiang62 小时前
Nginx性能优化与监控笔记
笔记·nginx·性能优化
ego.iblacat3 小时前
Nginx 性能优化与深度监控
运维·nginx·性能优化
百结2143 小时前
Nginx性能优化与监控实战
java·nginx·性能优化
WangJunXiang63 小时前
nginx安全笔记
笔记·nginx·安全
J超会运3 小时前
OpenEuler系统Nginx性能优化全攻略
运维·nginx·性能优化