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 小时前
使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
运维·nginx·缓存
月落归舟8 小时前
深入浅出:短信验证码登录场景下的 Nginx 负载均衡与 Session 共享
运维·nginx·负载均衡
东荷新绿8 小时前
【运维开发】acme.sh 安装|签发泛域名SSL证书,宝塔Nginx部署+自动续期
nginx·腾讯云·运维开发·ssl·宝塔·acme.sh
豆瓣鸡8 小时前
Spring Cloud Gateway 核心原理:从请求转发到微服务流量治理
网关·spring cloud·微服务
智购科技自动售卖机厂家1 天前
从STM32到RK3588——自动售货机嵌入式主控方案的架构演进~YH
stm32·嵌入式硬件·物联网·架构·lua·零售·symfony
是良辰1 天前
Docker Nginx HTTPS 自签证书部署完整操作文档
nginx·docker·https
Raas1001 天前
MAIGateway,魔芋企业级AI网关的FinAPI成本归因设计
大数据·人工智能·网关·api网关·finapi
難釋懷1 天前
Nginx外置缓存-redis2-nginx-module
nginx·缓存·junit
凡尘——雨落凡尘2 天前
PHP 线上十大隐形故障复盘:90% 的网站卡顿、502、雪崩,都是这些细节导致的
redis·nginx·php·session
Deryck_德瑞克2 天前
【Nginx】配置差异分析
服务器·前端·nginx