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

相关推荐
JiaWen技术圈10 小时前
nginx 安全响应头 介绍
运维·nginx·安全
阿里云云原生14 小时前
从 Nginx 堆溢出看网关安全:为什么说“指令式配置”正在成为攻击面的温床?
nginx
m0_7510186620 小时前
docker 安装 nginx
vue.js·nginx·docker
幽络源小助理21 小时前
PS网页版源码_在线Photoshop源码_Nginx免环境部署_支持PSD
nginx·ui·photoshop
林三的日常21 小时前
Nginx-Rift 漏洞
运维·nginx
yqzyy1 天前
C#如何优雅处理引用类型的深拷贝(十一)
java·网络·nginx
HEADKON2 天前
培西达替尼Pexidartinib对比伊马替尼在腱鞘巨细胞瘤中的CSF1R抑制与肝毒性风险
nginx
燕-孑2 天前
Nginx详解——进阶
运维·nginx
野熊佩骑2 天前
一文读懂Nginx 之 Ubuntu使用apt方式安装Nginx官方最新版本
linux·运维·服务器·nginx·ubuntu·http
墨着染霜华2 天前
Windows 启动 Nginx 一闪而过、pid 丢失、logs 目录报错彻底解决
运维·windows·nginx