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

相关推荐
章老师说1 天前
NGINX官方谈Lua风险:这其实是两条网关技术路线之争
运维·nginx·负载均衡·lua·openresty
xixingzhe21 天前
SpringBoot + Nginx 免鉴权接口安全防护方案
运维·nginx·安全
酷炫的水壶2 天前
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
运维·nginx·缓存
智商偏低2 天前
Windows Nginx 完整安装 + 启动教程
运维·nginx
会周易的程序员2 天前
使用 LuaBridge 封装 C++ 日志库 microLog 为 Lua 模块
c++·物联网·junit·lua·日志·iot·aiot
oscar9992 天前
3.4 Nginx 负载均衡——动态再平衡的反人性纪律
nginx·github·负载均衡·财富源代码
川石课堂软件测试2 天前
性能测试|Nginx中间件监控与调优
linux·python·nginx·中间件·单元测试·压力测试·harmonyos
m0_740859623 天前
Nginx进行配置文件拆分(以windows解压版为例)
nginx
开发小程序的之朴3 天前
认识安企CMS-安装安企CMS的环境要求
nginx·golang·系统架构
考虑考虑3 天前
nginx配置ssl
运维·后端·nginx