首页 > 系统相关 >[转帖]nginx重试机制proxy_next_upstream

[转帖]nginx重试机制proxy_next_upstream

时间:2024-04-02 13:45:10浏览次数:33  
标签:转帖 http next 重试 proxy timeout upstream 服务器返回

https://www.cnblogs.com/cyleon/p/11023229.html

 

nginx作为反向代理服务器,后端RS有多台服务器,上层通过一定机制保证容错和负载均衡。

nginx的重试机制就是容错的一种

官方链接:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream

proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | non_idempotent | off ...;
Default:    proxy_next_upstream error timeout;
Context:    http, server, location

指定应将请求传递到下一个服务器的情况:
error             # 与服务器建立连接,向其传递请求或读取响应头时发生错误;
timeout           # 在与服务器建立连接,向其传递请求或读取响应头时发生超时;
invalid_header    # 服务器返回空的或无效的响应;
http_500          # 服务器返回代码为500的响应;
http_502          # 服务器返回代码为502的响应;
http_503          # 服务器返回代码为503的响应;
http_504          # 服务器返回代码504的响应;
http_403          # 服务器返回代码为403的响应;
http_404          # 服务器返回代码为404的响应;
http_429          # 服务器返回代码为429的响应(1.11.13);
non_idempotent    # 通常,请求与 非幂等 方法(POST,LOCK,PATCH)不传递到请求是否已被发送到上游服务器(1.9.13)的下一个服务器; 启用此选项显式允许重试此类请求;
off               # 禁用将请求传递给下一个服务器。

下面还有一个参数影响重试次数,0表示不限制。:

Syntax:     proxy_next_upstream_tries number;
Default:    proxy_next_upstream_tries 0;
Context:    http, server, location

举例如下:

upstream app-proxy {
    server 192.168.5.100:8080;
    server 192.168.5.101:8080;
    check interval=2000 rise=1 fall=3 timeout=3000 type=http;
    check_keepalive_requests 1;
#    check_http_send "HEAD /status/status.html HTTP/1.1\r\n\r\n"; 
    check_http_send "GET /status/status.html HTTP/1.1\r\nConnection: close\r\nHost: localhost\r\n\r\n"; 
    check_http_expect_alive http_2xx http_3xx;
}

location / {
      proxy_pass         http://app-proxy;
      proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
      proxy_next_upstream_tries 3;
      proxy_connect_timeout 60s;
      proxy_read_timeout 60s;
      proxy_send_timeout 60s;
      proxy_pass_request_headers      on;
      proxy_set_header   Host             $host:$server_port;
      proxy_set_header   X-Real-IP        $remote_addr;
      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
      set $domain default;

标签:转帖,http,next,重试,proxy,timeout,upstream,服务器返回
From: https://www.cnblogs.com/jinanxiaolaohu/p/18110389

相关文章

  • [转帖]芯片相关-- Cpu历史--intel系列
    https://zhuanlan.zhihu.com/p/464413953 上次发了一篇文章,本以为没有人会感兴趣,大家关注的还挺多的,正好最近有空,把cpu的历史做了一个简单的回顾,将历史上出现的相关厂家关键芯片做个梳理,通过发展历史,大致了解脉络后,看罗马也不是一天完成的。说明:使用到的图片大部分来源......
  • [转帖]芯片相关-- Cpu历史--AMD系列
    芯片相关--Cpu历史--AMD系列https://zhuanlan.zhihu.com/p/477864185 1.1AMD1968年,仙童半导体的8位创始人中的两位——总经理罗伯特·诺伊斯(RobertNoyce)和实验室负责人戈登·摩尔(GordenMoore),带着一部分员工离开了陷入资金危机的公司,成立了英特尔(Intel)。而一......
  • [转帖]mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间,mysq
    https://www.cnblogs.com/jpfss/p/8759284.html1、当前日期selectDATE_SUB(curdate(),INTERVAL0DAY);2、明天日期selectDATE_SUB(curdate(),INTERVAL-1DAY);3、昨天日期selectDATE_SUB(curdate(),INTERVAL1DAY);4、前一个小时时间selectdate_sub(now(),in......
  • [转帖]linux expect 详解
    介绍expect是由DonLibes基于Tcl(ToolCommandLanguage)语言开发的,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员......
  • [转帖]openEuler 22.03 LTS 内核基础页大小配置选项讨论
    https://gitee.com/openeuler/kernel/issues/I4HDHZ 简介页表在操作系统中作为最基础的内存分配结构,ARM64支持4K、16K、64K不同大小的页表。当前页表大小只支持静态配置,不支持动态修改。OS一旦选定一个页表大小,为了兼容性考虑,在该版本生命周期内,一般不会再修改。openEul......
  • 服务器端渲染Nuxt.js Next.js
    传统服务端渲染art-template包是一个模板解析器,其官网会有解析器的语法和使用constexpress=require('express')constfs=require('fs')consttemplate=require('art-template')constapp=express()app.get('/',(req,res)=>{//1.获取页面模......
  • [转帖]中国开源软件:出口管制对其影响及未来展望
    https://www.allbrightlaw.com/CN/10475/d7cf06afe8d07a36.aspx  著名Linux基金会在其出版物中提到,“开源发展的最大优势之一是它实现了跨边界的协作;开源协作透明、公开且能跨越组织边界,促使世界各地的开发人员、学者和工作人员一同成就比个人力量所能造......
  • CentOS7 下 Docker方式部署 nextcloud步骤
    本示范站点在操作系统Centos7环境下;根目录设在:/app/dapp/caihcloud/nextcloud/html,根据实际情况自行调整;假设你已经安装启动好mysql80。现在开始,步骤如下:1、执行安装命令yuminstalldocker-ysystemctlstartdocker//启动dockersystemctlenabledocker//设置开机启动......
  • Python装饰器实战:实现优雅的重试机制
    重试机制在编程中是比较常见的场景,主要被用于处理那些可能由于临时性故障或网络波动等原因而失败的操作。本文介绍如何通过Python装饰器来实现重试机制,从而能够在尽量少修改现有代码的基础上,给其中某些函数加上重试机制。1.概要关于Python的装饰器,只是一个语法糖,原理也比较简......
  • [转帖]软件出口管制中的相关法律问题和分析
    https://www.sohu.com/a/294379160_221481 作者|方春晖刘良勇宋献涛 北京德和衡律师事务所(本文系知产力获得独家首发的稿件,转载须征得作者本人同意,并在显要位置注明文章来源。)(本文8010字,阅读约需16分钟)序言在国际贸易争端进程中,出口管制合规方面的话题不断浮现出来......