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

相关推荐
✧北辰٩(ˊωˋ*)و南冥✧7 小时前
nginx 负载均衡配置(加解决重复登录问题)
运维·nginx·负载均衡
hnlucky7 小时前
《Nginx + 双Tomcat实战:域名解析、静态服务与反向代理、负载均衡全指南》
java·linux·服务器·前端·nginx·tomcat·web
步、步、为营8 小时前
.net服务器Kestrel配置Nginx作为反向代理
服务器·nginx·.net
好奇的菜鸟12 小时前
在 Postman 中高效生成随机环境变量的完整指南
测试工具·lua·postman
晨岳13 小时前
CentOS 安装 JDK+ NGINX+ Tomcat + Redis + MySQL搭建项目环境
java·redis·mysql·nginx·centos·tomcat
执笔诉情殇〆13 小时前
前后端分离(java) 和 Nginx在服务器上的完整部署方案(redis、minio)
java·服务器·redis·nginx·minio
这儿有一堆花15 小时前
Nginx服务器集群:横向扩展与集群解决方案
运维·服务器·nginx
果子⌂2 天前
Docker-构建镜像并实现LNMP架构
mysql·nginx·docker·容器·架构·php
一只小阿乐3 天前
window 服务器上部署前端静态资源以及nginx 配置
运维·服务器·nginx
Linux运维技术栈3 天前
Nginx 动静分离原理与工作机制详解:从架构优化到性能提升
运维·nginx·架构