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

相关推荐
洞窝技术14 小时前
一键屏蔽某国IP访问实战
前端·nginx·node.js
tzhou6445215 小时前
Nginx + Tomcat 实战:反向代理、负载均衡与动静分离
nginx·tomcat·负载均衡
涔溪15 小时前
通过Nginx反向代理配置连接多个后端服务器
vue.js·nginx
12程序猿17 小时前
postman调用文件(.xlsm---带宏的excel文件)下载接口成功下载excel文件,浏览器访问下载文件打不开
excel·lua·postman
z***948417 小时前
Linux下安装Nginx服务及systemctl方式管理nginx详情
linux·运维·nginx
默恋~微凉18 小时前
Nginx(十一)——反向代理与负载均衡
运维·nginx·负载均衡
霜绛18 小时前
Unity:lua热更新(三)——Lua语法(续)
unity·游戏引擎·lua
可丷乐18 小时前
nginx常用命令
nginx
木童66219 小时前
Nginx 深度解析:反向代理与负载均衡、后端Tomcat
linux·运维·nginx
0wioiw020 小时前
跨网络互联技术(Nginx反向代理)
服务器·网络·nginx