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

相关推荐
网络笨猪12 分钟前
# Nginx企业级全套配置\+排错手册
运维·nginx
Junsir大斗师1 小时前
Nginx服务器代理Postgresql-16后端数据库
数据库·nginx
2301_816374338 小时前
Nginx下构建PC站点
java·运维·nginx
网络笨猪9 小时前
Nginx企业级高频场景配置大全
运维·nginx
庞轩px16 小时前
第七篇:大模型API调用——从Token到流式输出
websocket·nginx·大模型·token·sse·流式输出·api密钥
庞轩px1 天前
大模型推理网关——从负载均衡到故障注入的完整设计
网关·大模型·负载均衡·webflux·token限流·api密钥
Cyber4K1 天前
【Python专项】Nginx访问日志分析时间范围处理示例
开发语言·python·nginx
JSLove1 天前
nginx入门
前端·nginx
2301_816374332 天前
Nginx的源码编译
运维·nginx
Arya_aa3 天前
四:部署前端和后端
nginx