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

相关推荐
千夜啊6 小时前
Nginx 运维开发高频面试题详解
运维·nginx·运维开发
@_@哆啦A梦18 小时前
Nginx知识
运维·nginx
繁梦溪1 天前
在Ubuntu子系统中基于Nginx部署Typecho
linux·nginx·ubuntu
千夜啊2 天前
nginx目录结构和配置文件
运维·nginx
苹果醋32 天前
Win10安装MySQL、Pycharm连接MySQL,Pycharm中运行Django
运维·vue.js·spring boot·nginx·课程设计
Winston-Tao4 天前
skynet 源码阅读 -- 核心概念服务 skynet_context
lua·游戏开发·c 语言·skynet·游戏服务器框架
苹果醋34 天前
MySQL查询优化(三):深度解读 MySQL客户端和服务端协议
java·运维·spring boot·mysql·nginx
清欢渡hb4 天前
使用 Docker + Nginx + Certbot 实现自动化管理 SSL 证书
nginx·docker·自动化
m0_748241234 天前
如何将Vue项目部署至 nginx
前端·vue.js·nginx
一张假钞4 天前
Ubuntu 16.04安装Lua
linux·ubuntu·lua