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

相关推荐
spencer_tseng3 小时前
WeakAuras NES Script(lua)
lua·wow·nes·weakauras
红黑色的圣西罗9 小时前
xlua中自定义lua文件加载的一种方式
lua
BUG研究员_10 小时前
LoadBalancer负载均衡和Nginx负载均衡区别理解
nginx·rpc·负载均衡
法外狂徒张三!11 小时前
Roblox踩坑1——动画无法完整播放
lua·roblox
见欢.11 小时前
Nginx解析漏洞靶场通关(nginx_parsing&CVE-2013-454)
nginx
2401_8504108316 小时前
LVS简介
运维·nginx·tomcat·lvs
Say-hai1 天前
nginx-rtmp服务器搭建
服务器·nginx·音视频
冒泡P1 天前
【Lua热更新】上篇
开发语言·数据结构·unity·c#·游戏引擎·lua
liuyunshengsir1 天前
Nginx的stream模块代理四层协议TCP的流量转发
运维·tcp/ip·nginx
过过过呀Glik1 天前
在 Ubuntu 上安装 Nginx 的详细指南
nginx·ubuntu