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

相关推荐
m0_7492999513 分钟前
Nginx主配置文件
java·服务器·nginx
lanhuazui105 小时前
lua中table键类型及lua中table的初始化有几种方式
lua
程序猿多布18 小时前
Lua和C#比较
c#·lua
LJC_Superman18 小时前
Web与Nginx网站服务
运维·服务器·前端·网络·数据库·nginx·vim
ʚʕ̯•͡˔•̯᷅ʔɞ LeeKuma19 小时前
nginx常用命令(备忘)
服务器·nginx
误入运维泥潭1 天前
LVS、Nginx与HAProxy负载均衡技术对比介绍
nginx·lvs·haproxy·keealived
专注代码七年1 天前
Docker 本地开发环境搭建(MySQL5.7 + Redis7 + Nginx + 达梦8)- Windows11 版 2.0
nginx·docker·容器
牛奶咖啡131 天前
Nginx +Tomcat架构的必要性与应用示例
nginx·tomcat·nginx的静态动态资源配置·root与alias的区别·静态及负载均衡动态资源配置
Linlichaoblms1 天前
Nginx性能调优:参数详解与压测对比
java·spring boot·nginx
我发在否1 天前
Lua > Mac Mini M4安装openresty
macos·lua·openresty