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

相关推荐
花间相见2 小时前
【JAVA开发】—— Nginx服务器
java·开发语言·nginx
WorldWelcome3 小时前
springboot3整合knife4j,并nginx映射到外网
nginx·springboot3·knife4j·jdk21
DN金猿7 小时前
使用ubuntu安装nginx时报错
linux·nginx·ubuntu
Tipriest_14 小时前
网关相关内容介绍
网关
怒放de生命201015 小时前
前端子包+docker流水线部署+nginx代理部署
前端·nginx·docker
Tipriest_17 小时前
排查一个多网卡的机器上不了网的问题(更改默认路由)
网络·网关·路由·多网卡
weixin_4624462317 小时前
Ubuntu 使用 systemd + Nginx 部署 code-server(含 HTTPS)
nginx·ubuntu·https
连续讨伐2 天前
前期小随笔
服务器·网络·nginx
s_daqing3 天前
ubuntu(arm)使用nginx安装静态服务器
服务器·nginx·ubuntu
物有本木3 天前
httpsok-v2.0.8发布-支持IIS证书自动续签
nginx·ssl