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

相关推荐
冰_河4 小时前
《Nginx核心技术》第11章:实现MySQL数据库的负载均衡
后端·nginx·架构
q***23574 小时前
使用 Nginx 搭建代理服务器(正向代理 HTTPS 网站)指南
运维·nginx·https
java_logo5 小时前
NGINX WEBUI Docker 容器化部署指南
运维·nginx·docker·容器·centos·rabbitmq·运维开发
Empty_7775 小时前
Ansible进行Nginx编译安装的详细步骤
linux·nginx·ansible
q***46526 小时前
若依部署Nginx和Tomcat
运维·nginx·tomcat
FAREWELL000757 小时前
Lua学习记录(3) --- Lua中的复杂数据类型_table
开发语言·学习·lua
qq_2813174710 小时前
nginx安装配置、故障处置、性能优化
运维·nginx
疆鸿智能研发小助手13 小时前
一场协议转换的“破壁”之旅:CC-Link IE转PROFINET网关实战手记
网关·工业自动化·profinet·协议转换网关·cclinkie
未来的旋律~13 小时前
nginx
运维·网络·nginx
我有毓毓症15 小时前
nginx作业
运维·nginx