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

相关推荐
最贪吃的虎28 分钟前
Redis其实并不是线程安全的
java·开发语言·数据库·redis·后端·缓存·lua
peixiuhui11 小时前
Iotgateway技术手册-6. 数据流程
网关·iot·iotgateway·开源网关·采集软件·开源mqtt·开源modbus
864记忆14 小时前
Qt创建连接注意事项
数据库·qt·nginx
peixiuhui18 小时前
Iotgateway技术手册-1. 项目概述
linux·网关·iot·modbus·数据采集网关·iotgateway·采集软件
Anarkh_Lee18 小时前
别再手写 conf 了!NgxFlow:基于 React Flow 的 Nginx 可视化与调试神器
前端·nginx·数据可视化
Run Out Of Brain19 小时前
解决nginx代理配置下wordpress的 /wp-admin/返回 302 重定向到登录页问题
运维·nginx
一勺菠萝丶21 小时前
芋道项目部署:前端写死后端地址 vs Nginx 反向代理
前端·nginx·状态模式
peixiuhui1 天前
Iotgateway技术手册-10. 开发指南
物联网·网关·开源软件·iot·iotgateway·开源网关
peixiuhui1 天前
Iotgateway技术手册-5. 插件化驱动架构
开发语言·物联网·网关·数据采集·iot·dotnet·iotgateway
_200_1 天前
Lua 流程控制
开发语言·junit·lua