V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
stroh
V2EX  ›  职场话题

某公司后端老大遇到 500 错误让前端查是否缺少页面,怎么破?

  •  4
     
  •   stroh · 103 天前 · 13482 次点击
    这是一个创建于 103 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务页面挂了,运营找运维看,运维看服务没问题找前端查问题,前端看页面路径上来就 500 了,然后找后端寻求帮助,后端上来就踢皮球,也是醉了,还说是因为前端缺少页面导致的 500...
    每次一出问题就找前端,除非找到决定性证据后端自查,现在后端都这么好干吗》

    ![image]( )
    217 条回复    2022-08-31 15:59:45 +08:00
    1  2  3  
    Vitta
        1
    Vitta  
       103 天前
    哈哈哈哈哈哈哈哈哈哈哈哈 牛逼
    quan01994
        2
    quan01994  
       103 天前
    哈哈哈哈哈哈哈哈哈哈哈哈 牛逼
    Mithril
        3
    Mithril  
       103 天前   ❤️ 2
    你们一公司都是人才,这不是写了 OpenResty 报的错吗。。。
    h1104350235
        4
    h1104350235  
       103 天前   ❤️ 9
    无效沟通,和这种人做同事也是够呛的。
    xiaojun1994
        5
    xiaojun1994  
       103 天前   ❤️ 1
    最后的表情包不错
    a33291
        6
    a33291  
       103 天前
    培训班出身吗 🤣
    wunonglin
        7
    wunonglin  
       103 天前
    哈哈哈哈哈哈。最后的表情包可以发一下吗
    Bijiabo
        8
    Bijiabo  
       103 天前
    求表情包😂
    stroh
        9
    stroh  
    OP
       103 天前   ❤️ 1
    stroh
        10
    stroh  
    OP
       103 天前   ❤️ 1
    vampuke
        11
    vampuke  
       103 天前   ❤️ 14
    前端就是 bug 路由器,已经习惯了
    bury
        12
    bury  
       103 天前
    666
    statement
        13
    statement  
       103 天前
    500 为什么不能找前端
    如果按小公司 能跑就行来说 谁最后导致的错误就找谁呀
    大厂都不能做到面面俱到 偶尔也会遇到 500 页面

    如果我做内部系统,出错能改前端解决的 真懒得改后端
    zhouyg
        14
    zhouyg  
       103 天前   ❤️ 1
    哈哈笑死,以后面试还是得多检查下对于 http 的基本常识如何
    Mithril
        15
    Mithril  
       103 天前   ❤️ 24
    盲猜一个复盘:
    运营发现挂了,甩锅运维
    运维瞅了一眼 Dashboard 发现所有服务都活着,甩锅前端
    前端瞅了一眼发现是“Server Error”,甩锅后端
    后端瞅了一眼这特么居然是个页面,我后端从来没生成过错误页面,前端说话还那么冲,自然就顶回去了。

    大概是你们用了个 Nginx 做路由或者 serve 静态页面,这玩意在你前端开发用不上,但也没接到后端里。实际上应该找运维去拉一下 Nginx 的 log 。所以你找后端,他会让你去找运维。

    估计是大概猜出来问题在哪了,但你这语气估计也不想多说,开怼吧。
    stroh
        16
    stroh  
    OP
       103 天前
    @Mithril 我没截上面,上面心平气和的说明问题,上来就怼我页面问题,够客气了吧?而且我找过运维,运维说不知道让我自己解决...
    YSMAN
        17
    YSMAN  
       103 天前
    这是大佬??
    anjianshi
        18
    anjianshi  
       103 天前
    @YSMAN 不只是大佬,甚至是老大
    JKeita
        19
    JKeita  
       103 天前
    这种是大佬?搞笑吧。看来你们公司技术水平参差不齐啊。
    NerbraskaGuy
        20
    NerbraskaGuy  
       103 天前
    我觉得可以润了,先不管水平这么样,这么难沟通的同事工作起来也很心累
    liuymf
        21
    liuymf  
       103 天前
    还缺人吗 让我来搞后端 有问题第一时间排查 哈哈
    l864494871
        22
    l864494871  
       103 天前
    笑死啦 哈哈哈哈
    lawmil
        23
    lawmil  
       103 天前
    难道不是前后端分离么?这种直接域名访问报错,都是甩给前端查。。
    daimubai
        24
    daimubai  
       103 天前
    牛逼
    aragakiyuii
        25
    aragakiyuii  
       103 天前 via iPhone
    服务没问题有没有可能是后台压根就没打日志😂
    lopda
        26
    lopda  
       103 天前 via Android
    最后一句说的好像没问题。可以找运维看下服务器代理可正确😄
    lopda
        27
    lopda  
       103 天前 via Android
    前端经常遇到这种情况,都习惯了😄
    xuqiccr
        28
    xuqiccr  
       103 天前
    哈哈哈前公司有个组长也叫丁丁
    rrfeng
        29
    rrfeng  
       103 天前
    其实这后端也不是全错(当然很垃圾)

    这个路径确实可能不是我的服务的(所以问运维)
    Skifary
        30
    Skifary  
       103 天前   ❤️ 1
    @Mithril 盲猜你猜的对,第一句话找运维说明大概知道问题根源。
    wolfie
        31
    wolfie  
       103 天前
    《现在后端都这么好干吗》
    可想而知你是什么水准
    Vegetable
        32
    Vegetable  
       103 天前   ❤️ 1
    一条 curl 直接下线
    neutrinos
        33
    neutrinos  
       103 天前 via iPhone
    公司盈利多不分你,盈利少就裁你,管那么多干嘛,做好本分,按专业知识笑嘻嘻回复。这是领导和 hr 的问题,招的人水平不够,不要为难你自己
    Vegetable
        34
    Vegetable  
       103 天前   ❤️ 3
    理论上前后端分离的系统应该看不到这个页面的,这意味着静态页面就没拿到。确实不一定是后端的问题,又不是 API 抛出的 500 ,但是 500 这个页面肯定是 nginx 后边出了问题,所以这个要先找运维,确认是哪一步抛出的原始异常。
    IvanLi127
        35
    IvanLi127  
       103 天前 via Android   ❤️ 5
    踢回给运维。找后端干嘛。。。。这被后端踢有点活该哦!而且有问题找前端的人是这位后端找的么?不是运维么?看这对话,这前端才是踢皮球小王子啊!
    imycc
        36
    imycc  
       103 天前   ❤️ 2
    哈哈哈哈,面向甩锅编程,只要不是我的错就行。不过无效的聊天内容太多了。

    回到本楼主题,查 bug 不应该是这么查的。相关人员拉个群,让负责人来主持,分清楚是哪边的问题,再让具体的研发去查就好了。
    chloerei
        37
    chloerei  
       103 天前   ❤️ 4
    前后端分裂。
    honamx
        38
    honamx  
       103 天前
    看后端的意思是 URL 里是包含了某个变量吧,而这个变量是前端生成的,调用后端接口因为值有问题导致接口 500 。不是给那后端洗白,感觉楼主也没了解清楚相关业务。哈哈哈哈
    Zenyet
        39
    Zenyet  
       103 天前
    @chloerei 哈哈,难绷。:0
    chuanqirenwu
        40
    chuanqirenwu  
       103 天前
    后端处理问题不积极,但他说的应该还是有道理的,没有走到他负责的 java 服务,所以他不管。
    stoluoyu
        41
    stoluoyu  
       103 天前
    错误图太糊了,不过还真不一定是后端。
    不过踢皮球确实很蛋疼,所以我比较喜欢前后端项目分离,人员不分离。
    ljpCN
        42
    ljpCN  
       103 天前
    真不一定是后端,如果做了前后端分离,不至于整个页面 500 ,整个页面 500 很可能是网关层出错。
    zoharSoul
        43
    zoharSoul  
       103 天前 via Android
    从描述来看他说的估计是对的,你没看懂他想表达的意思😂
    pengtdyd
        44
    pengtdyd  
       103 天前
    都是人才啊,三流的领导就会待出不入流的团队!!!
    nbhaohao
        45
    nbhaohao  
       103 天前
    蹲一手后续,到底是谁的问题...
    isbase
        46
    isbase  
       103 天前
    高效排查问题需要好的日志和链路追踪服务

    如果有链路追踪服务,出错了拿着 traceId 一键查找出错的服务。

    如果没有链路追踪服务,那么按照你们公司的请求链路,从入口服务一层一层往后查日志


    至于谁来查,要取决前端是怎么部署的,对于前后端分离的项目,前端独立部署的肯定要前端自己来查,500 可能是 cdn 也可能是网关也可能是其他中间服务。

    如果是传统 mvc 那种前后端一体的,让后端自己搞去。
    isbase
        47
    isbase  
       103 天前
    如果明确是后端的问题,不用和对方废话兜圈子,不配合直接拉他老板即可
    msaionyc
        48
    msaionyc  
       103 天前   ❤️ 6
    老实说,我觉得后端说话没有大毛病,说到一半,你那句“肯定是后端少判断,走到了代码错误的地方,报错了。。”,你能为你说的话负责吗?只要这次锅和后端没关系,以后你们组再有任何问题,他都不会再管,除非闲的。
    yeqizhang
        49
    yeqizhang  
       103 天前 via Android
    34 楼说的很准确。现在前后端分离,如果不是前后端分离也不会前后端分很清吧,html 直接 500 的话,这种就是找运维人员的,除非你们没运维,是后端兼的……
    fox0001
        50
    fox0001  
       103 天前 via Android
    没找到明显证据、错误信息,这样根本没法聊。
    seesky
        51
    seesky  
       103 天前
    没后续吗? 不会被打脸了吧?
    kingjpa
        52
    kingjpa  
       103 天前
    这时候,我们这种小公司的好处就出来了, 无论是前端还是后端还是运维 甚至是阿里的服务挂了, 都会找到我头上 我还没法推。

    其实我认为后端肯定知道这个问题出在哪里,只是不想费口舌和你说,
    请求都没落到后端服务上,他到哪里看日志呢?
    ily433664
        53
    ily433664  
       103 天前
    还真不一定是谁的锅,打个比方某个参数前端传了 undifend ,那报错就没后端没啥关系了
    zhw2590582
        54
    zhw2590582  
       103 天前
    前后端分裂,笑死了
    ilylx2008
        55
    ilylx2008  
       103 天前
    @ily433664 后端不做验证的吗
    hutoer
        56
    hutoer  
       103 天前
    我们用 flask 开发的系统,就碰到过 templates 缺少文件导致 500 错误。由于 templates 是前端维护的,所以找前端的锅,然后前端说是部署的人没同步。你看锅从 测试 -> 前端 -> 后端 -> 前端 -> 部署。
    leaves615
        57
    leaves615  
       103 天前
    @zhouyg 最近面试很多前端,别说 http 协议了,html 怎么写都不太会了。
    大前端时代,一维数组是什么都不知道。
    xmh51
        58
    xmh51  
       103 天前
    你没有看明白后端老哥意思,别一上来就挂人,后端老哥又没有推诿,给你正确的路径了。两方意见打架别想当然。拉个群。
    第一个报错的是那个是 openresty ,这个是一个类似 ngnix 的东东,又不是 java 的 tomcat 报错?你怎么确定是后端老哥的问题。
    正确的做法就是找运维排查 openresty 找到对应的转发 url ,一层一层排下去。
    xmh51
        59
    xmh51  
       102 天前
    另外说句实话,评论区也太冲了,这种 openresty 的报错一般来说都是一层一层往下的。
    还是沟通的问题
    前端以为的后端服务就是 java
    实际上的后端服务,高防=>openresty=>k8s ingress=>java 应用。
    结论:前端要么拉个群,让大家一块排查,要么多了解了解后端架构
    fantastic
        60
    fantastic  
       102 天前
    这种不一定是后端的问题,等个后续
    EminemW
        61
    EminemW  
       102 天前
    有一说一这看起来是路径错了,跟后端关系不大啊,应该找运维查。这种情况下,就算后端加了判断不也是要报错给调用者么
    potatowish
        62
    potatowish  
       102 天前 via iPhone
    页面报 500 很有可能是运维的锅,接口报 500 大概率是后端的锅,只能说你们这后端不太行,只要不是前端的问题,都可以找后端来排查。
    wtfedc
        63
    wtfedc  
       102 天前
    技术广度不够,还阴阳怪气的人真多。用户水平越来越拉稀,怪不得老用户不上线了=。=
    chendl111
        64
    chendl111  
       102 天前
    应急拉人说话不要这么冲,虽然心里火气大但是打字还是要委婉一点,最后问一句:你确定是后端的问题了吗?那句”现在的后端都这么好干了吗“太伤人了,直接否定人家的职业水平和技术能力,如果最后是你错了,那你以后就别想找后端做任何事情了
    darkengine
        65
    darkengine  
       102 天前
    看来我们这种小公司,全栈一脚踢的还是有一定优势哈 😂
    wonderfulcxm
        66
    wonderfulcxm  
       102 天前 via iPhone
    500 肯定是后端错误啊
    fiypig
        67
    fiypig  
       102 天前 via iPhone
    妈的,换成我只能自己喷自己,出 500 了只能默默自己搞,真羡慕有运维有前后端的
    xmh51
        68
    xmh51  
       102 天前   ❤️ 2
    @potatowish
    @wonderfulcxm
    老哥们,看仔细点 500 页面是 openresty 报的。一个 api 有很长的请求链路, 答主询问的后端只是负责 java 应用。他已经指明找谁排查了,运维查询 openresty 日志定位异常来源,一级一级往下排查。
    xmh51
        69
    xmh51  
       102 天前   ❤️ 1
    这个问题咋会有争议的?想不明白。。不是直接从 openresty 往下追溯就行了吗?现在的前端已经不需要了解 openresty/ngnix 是啥,openresty/ngnix 怎么部署静态网页,openresty/ngnix 如何反向代理后端 api 了吗?
    wonderfulcxm
        70
    wonderfulcxm  
       102 天前 via iPhone   ❤️ 1
    @xmh51 后端出错 openresty 当然是报 500 错误,你对错误码是不是有什么误解?运维可以看日志,但 500 无论如何都扯不到前端。
    garyox64
        71
    garyox64  
       102 天前
    理想情况,出了问题和团队无关,一条请求链路 报了 500 ,一环环查就是了,不过这样就对技术栈要求都比较熟悉
    甩锅角度看就是运维的锅,你就拉个群 把领导们都拉进去,让运维 帮定位好了
    明明是一个简单的事,最后 经过了一大堆沟通成本以后,才有结果,感觉这就是目前很多公司的通病
    人效太低了,哎 现在干活真没劲,这种破事一箩筐
    MonoLogueChi
        72
    MonoLogueChi  
       102 天前 via Android   ❤️ 1
    @wonderfulcxm 为什么 500 错误扯不到前端?最简单的例子,前端路由写错了,最简单的情况是找不到页面就是 404 ,但如果规则匹配到了后端呢,抛个 500 出来不是很正常吗。这时候抛 500 错误出来的原因是啥,前端路由写错了。
    qeqv
        73
    qeqv  
       102 天前
    额,能理解你说话时的心情,肯定是长期做 BUG 路由心理不舒服。
    我猜这个后端的意思是“你正确传值就不会 500 ,虽然我代码没做纠错判断,但我懒得改”
    猜的,蹲一个后续
    jmk92
        74
    jmk92  
       102 天前
    内心:我 TM 知道是后台的,可我不知道是哪的,找 BUG 你以为是一句话的事啊。让你找运维,运维也许能找到这块属于谁写的代码,那就可能不找我了
    zpf124
        75
    zpf124  
       102 天前
    @wonderfulcxm
    如果后端报 500 错,会由后端的服务器程序以自己的格式返回错误信息,对于 java 的后端而言是 tomcat 或者其他程序,而不是 openresty 的标准 500 页面。
    不信的话你自己用 node 起一个服务让他访问就 500 ,然后你用 openresty/nginx 反代套一层,自己访问看一下会不会出现 openresty 的 500 页面。
    zpf124
        76
    zpf124  
       102 天前   ❤️ 1
    总结一下问题。

    运营发现访问不了,喊运维,
    运维粗查监控没有宕机,甩锅前端,
    前端一看 500 错误,就觉得这是后端的错,甩锅后端。
    后端一看返回的是 nginx 的页面,而且访问的还是前端的路径(聊天里说的),和我有 p 关系?

    最后前端出来发帖:"现在后端都这么好干吗》"

    ----------------------------

    期待后续楼主出来解答一下到底谁的问题, 看看谁是真的在甩锅。

    我唯一能想到的 前端项目路径报 500 还会是后端引起的情况就是 —— 你们是 SPA 应用做了首屏服务端渲染,然后服务端渲染时调用后端 api 报错。
    有人知道其他可能性的话麻烦也给我讲讲。

    我初步猜测,最有可能的情况是 500 的访问链接是代码拼接生成的,但拼接了特殊符号或者什么其他内容,导致反代解析出问题;
    除此外要么是 WAF 相关设置有毛病,要么反代服务器配置有问题或者写了 Lua 脚本但出 bug 了。
    elevioux
        77
    elevioux  
       102 天前 via Android
    这个是 web 服务软件默认的错误页面,还真不一定就是后端 java 的问题。
    因为后端框架通常都有异常的处理机制,500 的页面通常是框架定制的。我写 php ,用 Laravel 居多,Laravel 就有自己的 500 处理方式。
    因此问题也可能出在 web 服务到 java 这一步,后端叫运维去查也不是完全没有道理。
    mysalt
        78
    mysalt  
       102 天前 via iPhone
    为什么不拉个群呢,把几方都拉进去解决,要再解决不了就把他们领导都拉进去,直到解决为止。
    neptuno
        79
    neptuno  
       102 天前 via iPhone
    直接看控制台呀,哪个接口报错,复制接口路径和参数,然后 postman 构造用例,这才是有效沟通。
    AllenHua
        80
    AllenHua  
       102 天前
    我想看后端日志,楼主,快上 [吃瓜]
    justin2018
        81
    justin2018  
       102 天前
    想知道 到底是谁的责任~~

    这不就是摸鱼的好机会嘛 说排查了一天的问题 😁
    kangyan
        82
    kangyan  
       102 天前
    中野决裂了属于是
    nicevar
        83
    nicevar  
       102 天前
    这个还真不一定是后端的锅,先让运维定位一下问题才是关键,我不明白你们俩吵啥,想直接物理手段解决问题吗
    uvwlab
        84
    uvwlab  
       102 天前
    像这种情况,各方面都要自查
    martinqian
        85
    martinqian  
       102 天前   ❤️ 4
    我怎么看着这后端态度其实还行呢,可能他觉得 UP 主这位前端很难理解这其中的机理,所以不愿意说太多,就简单指了一条路:找运维跟一下,或者找丁丁帮忙。

    通常,后端返回 500 的时候,即使 body 数据没用 JSON 之类的进行编码,也不可能去添加什么 Openresty 之类的信息,所以他认为这个问题和他没关系,因为数据不是他返回的。

    当然了,问题还是得 UP 主去推(因为运维在拉稀呀),一切皆有可能。
    oneisall8955
        86
    oneisall8955  
       102 天前 via Android
    拉个群,看谁还踢皮球
    yangzzzzzz
        87
    yangzzzzzz  
       102 天前
    这个时候拉大大群就都老实了 最好领导也在里面 @全体成员
    fzdwx
        88
    fzdwx  
       102 天前   ❤️ 8
    感觉后端老大态度很可以啊,就是这个前端一直在阴阳怪气?
    koloonps
        89
    koloonps  
       102 天前
    这个感觉是 nginx 的 500,不像 Java 或者.net 的 500....
    ily433664
        90
    ily433664  
       102 天前
    @ilylx2008 #55 那也分不同的情况,有些是后端偷懒没验证,有些参数是数值类型传 undifend 就没到验证就出错了
    tairan2006
        91
    tairan2006  
       102 天前 via Android
    这个 500 页面一般确实应该找运维,跟 API 层关系不大
    Junzhou
        92
    Junzhou  
       102 天前
    大概率请求就没到他负责的 Java 服务那一层,然后又懒得跟你说太多(可能他觉得你看起来确实不怎么懂这一块,跟你说了也白说)。。。 那么大的 OpenResty 都看不到。
    Huelse
        93
    Huelse  
       102 天前
    就表现来看,这的确要找运维的,后端知道自己这边的错误页会是什么样,一看不是,那就得找运维了
    GopherTT
        94
    GopherTT  
       102 天前
    前端不懂后端和背后的整个服务,500 一定就是后端的锅了?只是前端不懂分析和定位问题,其实聊天里都指出问题了。
    kappa
        95
    kappa  
       102 天前   ❤️ 2
    说的很明白吧,要找运维确认是路由到哪了,op 和后端中间隔了个人,不懂没关系先找运维贴配置贴日志,直接跑外网挂人以为自己水平最高?
    idblife
        96
    idblife  
       102 天前 via iPhone
    你们运维垃圾
    yuzo555
        97
    yuzo555  
       102 天前
    “前端”不一定是指浏览器端,很多情况中间层在服务器上,跑着 OpenResty 或者 PHP ,但也算是前端,因为它不负责业务,只是把真正的后端输出的内容展示给客户端,做点负载均衡什么的,甚至还做点缓存。

    就这个案例来说,不一定是中间层还是后端出的问题,确实得运维拉日志查下。
    abuabu
        98
    abuabu  
       102 天前   ❤️ 7

    。。。
    难不成?
    那为什么?
    肯定是
    啊大哥
    我第一次
    厉害了
    基本常识
    明显是

    句句给人加怒气
    laolaowang
        99
    laolaowang  
       102 天前
    如果是那种前后分离的项目,确实也不能完全怪后端,这种 500 也可能是代理有问题
    vazo
        100
    vazo  
       102 天前
    请问 op,这都快一天了,到底是谁干的?
    1  2  3  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3310 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 63ms · UTC 14:21 · PVG 22:21 · LAX 06:21 · JFK 09:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.