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

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