大发龙虎稳赢首页    注册   登录
大发龙虎稳赢 = way to explore
大发龙虎稳赢 是一个大发龙虎稳赢关于 分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
chenqh
大发龙虎稳赢  ›  NGINX

大发龙虎稳赢关于 nginx upstream 遇到的一个问题

  •  
  •   chenqh · 10 天前 · 842 次点击

    大发龙虎稳赢我 定义了一堆 upstream

    upstream {
    	server 127.0.0.1:1050;
        server 127.0.0.1:1051;
        server 127.0.0.1:1052;
        server 127.0.0.1:1053;
    }
    

    在大发龙虎稳赢我 的代码里面大发龙虎稳赢我 对错误的处理是这个样子的

    1. 设置状态为 500
    2. 返回详细的 json

    现在遇到了问题
    只要大发龙虎稳赢我 拼命导致这种 500 的请求
    然会就会出现 502!
    难道 nginx 判断上游是不是 fail,也使用了 500
    大发龙虎稳赢我 改成了 400 就不会 502 了

    所以问题来的, upstream 判断上游 fail 到底有哪些条件?

    12 回复  |  直到 2020-01-14 22:13:24 +08:00
    msg7086
        1
    msg7086   10 天前 via Android   ♥ 1
    5 系是大发龙虎稳赢服务 器崩溃或者出问题。4 系是客户端有病。没记错的话是这个规范,大发龙虎稳赢你 可以去查查状态码分类含义。
    also24
        2
    also24   10 天前   ♥ 1
    大发龙虎稳赢你 是否配置了 proxy_next_upstream 参数?

    大发龙虎稳赢我 翻看了一下官方文档 http://nginx.org/en/docs/http/ngx_http_upstream_module.html#max_fails
    上面写的是:
    What is considered an unsuccessful attempt is defined by the proxy_next_upstream......

    再翻看 proxy_next_upstream 的说明
    http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream

    默认参数只有 error 和 timeout,没有包含 http_50x
    chenqh
        3
    chenqh   10 天前
    @also24 大发龙虎稳赢我 个人是没有配置的,但是大发龙虎稳赢我 用的是 bt 的 nginx,大发龙虎稳赢我 也不敢确保到底配没有配了
    also24
        4
    also24   10 天前
    @chenqh #3
    可以自己手动加入一下这个字段来覆盖参数试试看
    Livid
        5
    Livid   大发龙虎稳赢 Moderator   10 天前   ♥ 1
    如果是用户输入了不合法的数据,后端程序本身没有因此崩溃的话,那么应该返回的状态码是 400 Bad Request。
    also24
        6
    also24   10 天前   ♥ 1
    @chenqh #3
    才反映过来大发龙虎稳赢你 说的 bt 是宝塔啊,大发龙虎稳赢我 找了个宝塔的服翻了下配置,确实是宝塔加了这一句

    它的 nginx 配置文件在:
    /www/server/nginx/conf/nginx.conf

    里面引用了:
    /www/server/nginx/conf/proxy.conf

    在这个文件里,配置了:
    proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
    chenqh
        7
    chenqh   10 天前
    @also24 大发龙虎稳赢我 刚刚居然没有找到
    also24
        8
    also24   10 天前
    @chenqh #7
    其实不管它有没有加,自己在相应的 Server 字段里加好覆盖一下应该也是没问题的~
    chenqh
        9
    chenqh   10 天前
    @also24 之前完全不会,之前只会配置 upstream, rewrite 都是今年学的
    wangyzj
        10
    wangyzj   10 天前
    全 200
    然后用自定义 code 来区分是大发龙虎稳赢我 的习惯啊
    chenqh
        11
    chenqh   10 天前
    @wangyzj 但是大发龙虎稳赢你 这个样子有个问题,看浏览器监听的时候,不能快速知道大发龙虎稳赢你 的东西错了
    wangyzj
        12
    wangyzj   10 天前
    @chenqh 主要还是个人习惯吧
    大发龙虎稳赢我 之所以这么做是因为懒,还有就是因为大发龙虎稳赢我 会也会把极严重问题改成 500,其他的 200,要不然总是红色大发龙虎稳赢我 心脏受不了
    大发龙虎稳赢关于   ·   FAQ   ·   API   ·   大发龙虎稳赢大发龙虎稳赢我 们 的愿景   ·   广告投放   ·   感谢   ·   实用小大发龙虎稳赢工具   ·   783 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 23:13 · PVG 07:13 · LAX 15:13 · JFK 18:13
    ♥ Do have faith in what you're doing.