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

相关推荐
源远流长jerry1 小时前
Linux 本机网络通信机制深度解析:Loopback 设备原理
linux·运维·服务器·网络·tcp/ip·nginx·负载均衡
谙弆悕博士4 小时前
Lua学习笔记
c语言·开发语言·笔记·学习·lua·创业创新·业界资讯
spmcor5 小时前
一文搞定 Nginx 开机自启:Windows / Linux / macOS 全平台指南
nginx
隔窗听雨眠16 小时前
从DNS解析到分布式存储的技术解构
分布式·网关·cdn·dns·socks
weixin_4080996717 小时前
触动精灵调用身份证OCR识别API实现智能信息录入(Lua脚本实战)
junit·ocr·lua·自动化脚本·石榴智能·身份证ocr识别·触动精灵
fred_kang1 天前
Windows 下 Nginx 启动报错 10013 / OpenEvent 完整排查指南
运维·windows·nginx
imuliuliang1 天前
五大编程语言核心对比:特性与应用全解析
运维·spring boot·nginx
天草二十六_简村人1 天前
对接AI大模型之nginx代理配置SSE接口
运维·网络·nginx·http·阿里云·ai·云计算
远创智控研发中心011 天前
工业现场案例:MPI转以太网模块在焊接产线多品牌HMI集成中的应用
网关·数据采集·西门子plc·以太网模块·工业自动化·总线协议
小趴菜克鲁里1 天前
Cocos Creator 进阶:打造灵活可控的进度条动画组件(循环与分段)
运维·nginx