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

相关推荐
睡不醒的猪儿10 小时前
Nginx 服务优化与防盗链配置方案
运维·nginx
大佐不会说日语~10 小时前
使用 Cloudflare平台 + Docker + Nginx 完成网站 HTTPS 部署实战记录
nginx·docker·https·部署·cloudflare
Knight_AL10 小时前
使用 Nginx 为内网 Java 服务实现 HTTPS
java·nginx·https
坚持学习前端日记11 小时前
Nginx 搭建文件服务器
运维·服务器·nginx
徐同保12 小时前
nginx接口超时,增加接口超时时间
运维·nginx
Benny的老巢1 天前
Mac上用XAMPP搭建局域网可访问的开发环境,让局域网内其他设备通过域名访问
nginx·macos·apache·xampp·php开发环境
岚天start1 天前
Docker部署NGINX实现服务四层转发方案
服务器·nginx·docker
姓蔡小朋友1 天前
LUA脚本
开发语言·junit·lua
微凉的衣柜1 天前
Windows Server 使用 Nginx 反向代理实现域名访问内网 Gradio 应用
运维·windows·nginx
金融新世界1 天前
推动产业升级:倒逼转型创新与重构产业链格局
lua