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

相关推荐
亦舒.1 小时前
宝塔面板Nginx手动配置负载均衡实战指南
运维·nginx·负载均衡
deming_su3 小时前
轻松上手:使用Nginx实现高效负载均衡
运维·nginx·负载均衡
Jack_hrx5 小时前
docker部署nginx
linux·nginx·docker·centos
紫璨月7 小时前
nginx反向代理的bug
运维·nginx·bug
快下雨了L8 小时前
Lua现学现卖
开发语言·lua
就叫飞六吧10 天前
基于keepalived、vip实现高可用nginx (centos)
python·nginx·centos
WIN赢10 天前
PostMan使用
测试工具·lua·postman
小生云木10 天前
Linux离线编译安装nginx
linux·运维·nginx
Cat God 00710 天前
项目上线(若依前后分离版)
java·nginx
多多*10 天前
计算机网络期末 网络基础概述
运维·服务器·网络·数据库·计算机网络·oracle·lua