V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
DT27
V2EX  ›  问与答

因为 502 错误,一直很抵触 nginx,为什么一直没有大神解决这问题?

  •  
  •   DT27 · 2018-07-16 18:08:15 +08:00 · 4003 次点击
    这是一个创建于 2359 天前的主题,其中的信息可能已经有所发展或是发生改变。


    tabris17
        1
    tabris17  
       2018-07-16 18:12:03 +08:00
    添加 nginx 配置

    error_page 502 /pretty502.html;
    lhx2008
        2
    lhx2008  
       2018-07-16 18:12:23 +08:00 via Android
    后端挂了和 nginx 有啥关系?
    lhx2008
        3
    lhx2008  
       2018-07-16 18:13:33 +08:00 via Android
    一直很抵触伞,因为每次打伞都是下雨或者大太阳
    DT27
        4
    DT27  
    OP
       2018-07-16 18:15:25 +08:00
    @lhx2008 对啊,如果是后端挂了,跟 nginx 有什么关系?为什么 nginx 显示 502 错误?
    另外,什么后端?
    DT27
        5
    DT27  
    OP
       2018-07-16 18:16:14 +08:00
    @lhx2008 你再好好想想。。。好好捋一捋关系。
    lhx2008
        6
    lhx2008  
       2018-07-16 18:17:07 +08:00 via Android
    @DT27 nginx 是一个代理,后端的逻辑是其他语言写的( php java python ),后端挂了 nginx 就拿不到源的数据,就返回 50x
    lhx2008
        7
    lhx2008  
       2018-07-16 18:19:07 +08:00 via Android
    所以是下雨才打伞,就是说后端挂了(一般是被攻击了),nginx 才返回 502
    tulongtou
        8
    tulongtou  
       2018-07-16 18:19:17 +08:00 via iPhone
    @DT27 去补习一下 HTTP 状态吗含义
    DT27
        9
    DT27  
    OP
       2018-07-16 18:20:44 +08:00
    @lhx2008 不是跟 apache 一样吗?我之前都是做 web 服务器用,经常莫名其妙 502。
    apache 如果出现错误,会给你具体错误信息,告诉你到底哪出的问题,而不会像 nginx 这样就一个 502
    WuwuGin
        10
    WuwuGin  
       2018-07-16 18:22:05 +08:00 via Android
    @DT27 你确定不是框架给的错误提示? 500internal 错误只能去看 Apache log
    lhx2008
        11
    lhx2008  
       2018-07-16 18:23:40 +08:00 via Android
    @DT27 那你是没有体验过 apache 直接被干到内存溢出了,直接死机,连个 502 都没有
    500 和 502 不是一样的
    Love4Taylor
        12
    Love4Taylor  
       2018-07-16 18:23:44 +08:00 via Android
    解决什么? 这里没有任何问题需要解决 502 状态码已经说的很明白了 连不上后端服务
    lhx2008
        13
    lhx2008  
       2018-07-16 18:24:58 +08:00 via Android
    @DT27 经常莫名其妙 502 是你后端配置的问题,或者后端内存不够,比如 lanmp 架构的那种
    RoyLeong
        14
    RoyLeong  
       2018-07-16 18:25:25 +08:00
    楼主的意思是,网站出故障,也想抛出在页面吧?但是网页是面向用户的,抛出来给用户看,很不友好。另外,处于安全考虑,如果是直接将异常抛出到页面上,已经是差不多直接暴露了报错源码,有时候还会有一些敏感信息。
    既然是抛出异常,那肯定是去看日志解决。
    mikeguan
        15
    mikeguan  
       2018-07-16 18:27:35 +08:00 via Android   ❤️ 1
    @DT27 首先不关 Nginx 的事 另外错误信息可以随便给用户看的?返回 502 客户知道问题 站长排查问题就行了 你看到的 502 不代表网站管理员 1 看不到具体报错信息
    isCyan
        16
    isCyan  
       2018-07-16 18:28:02 +08:00
    有人说 现在当大佬真容易…… 看来的确是这样
    这个问题冒出来的原因难道是
    用 Apache 当反代 /负载均衡的比较少? hhh
    DT27
        17
    DT27  
    OP
       2018-07-16 18:30:02 +08:00
    @RoyLeong 我是在开发的角度上问的。
    我之前同一个网站程序,用 apache 没问题,换到 nginx 就经常 502,根本找不到故障出在哪。。。
    所以就放弃 nginx 了。。。
    DT27
        18
    DT27  
    OP
       2018-07-16 18:31:22 +08:00
    @mikeguan 那应该是我自己不回用 nginx。。。 之前自己网站用 nginx 遇到 502 根本找不到问题出在哪,用 apache 就不会这样。。。
    isCyan
        19
    isCyan  
       2018-07-16 18:34:06 +08:00   ❤️ 1
    @DT27 找不到故障出在哪就看日志分析一下呗,两个服务器功能注重点不一样,用法也不一样,不会用没用好不能赖服务器报错嘛
    isCyan
        20
    isCyan  
       2018-07-16 18:37:37 +08:00
    主流 Apache+PHP 插件这种,本身就不存在后端,PHP 都是 Apache 自己在执行的
    而 Nginx 大多配合 php-fpm,php-fpm 对于 nginx 来讲就是个后端,和什么 http 反代后端粗略概念是一样的,nginx 要连接到 php-fpm 监听的 socket 或者端口,服务器和执行 php 的是两个进程两个服务
    doubleflower
        21
    doubleflower  
       2018-07-16 19:04:42 +08:00
    @DT27 你啥意思?出问题找 log 啊。总不能在页面上直接给出堆栈。
    huangzxx
        22
    huangzxx  
       2018-07-16 19:05:23 +08:00
    nginx proxy_cache_use_stale 了解一下
    icyalala
        23
    icyalala  
       2018-07-16 19:40:42 +08:00
    apache 那套,本身就算是所谓"前后端"放在一起的。apache 要是内部错误,能抛出来给你看,要是 apache 自身挂了,照样也是什么信息都没有。
    nginx 在这些场景下只是个代理,算是"前端",所以后端挂了 nginx 也不知道后端出了什么错。
    Tink
        24
    Tink  
       2018-07-16 20:52:17 +08:00 via iPhone
    不理解有什么区别
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1052 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:43 · PVG 03:43 · LAX 11:43 · JFK 14:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.