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

相关推荐
xingpanvip15 小时前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
難釋懷18 小时前
Nginx反向代理中的容错机制
运维·nginx
骇客之技术18 小时前
AutoLua:在安卓上写 Lua 脚本
android·junit·lua
bloglin9999918 小时前
Nginx高危漏洞CVE-2021-23017及配置样例
运维·nginx
进阶的小名18 小时前
Spring Boot SSE + Nginx 配置:解决 EventSource 不实时返回、连接超时、流式响应被缓冲问题
spring boot·后端·nginx
難釋懷19 小时前
Nginx获取客户端真实IP
服务器·前端·nginx
qq_谁赞成_谁反对20 小时前
甲方IT的成长之路--nginx实战--2604
服务器·数据库·nginx
weixin_471383031 天前
Node.js + Express 入门实战笔记-01-基础
node.js·lua·express
图灵追慕者1 天前
Nginx安裝以及配置顯示本地服務器文件夾
运维·nginx
闪电悠米1 天前
黑马点评-Redis ZSet-实现关注 Feed 流
服务器·网络·数据库·redis·缓存·junit·lua