【问题标题】:502 bad gateway and codeigniter/nginx/apache. Code or server issue?502 网关和 codeigniter/nginx/apache 错误。代码或服务器问题?
【发布时间】:2013-01-13 23:30:38
【问题描述】:

我的 codeigniter 应用程序正在针对 502 bad gateway 错误运行。我知道这个主题还有其他线程,但我不是服务器向导,症状不同,我的服务器配置也略有不同,或者我认为。

这是我的情况。

  • 该应用程序运行良好,直到我第 n 次发布表单(n 介于 2 到 n 次之间)。这第n次与之前的帖子完全相同。我只是更改一个字段,然后按提交按钮。
  • 表单使用验证类,我自定义了错误消息设置器,使这些消息在会话中也设置为 flashdata(我希望消息在重定向后可用)。
  • 我的服务器使用 Nginx 和 apache(Plesk,apache 服务守护进程称为 httpd)。如果我执行“service httpd stop”或“service nginx stop”,我所有的网站都会立即停止工作。
  • 错误日志中没有错误。

我的问题是:这可能是一个编码问题,还是最肯定(或最有可能)服务器配置错误?如果是后者,当然欢迎所有建议,但请记住这是一个 plesk/apache/nginx 环境。

希望大家帮忙!

【问题讨论】:

    标签: apache codeigniter nginx plesk


    【解决方案1】:

    我知道出了什么问题。首先,有更多服务器知识的同事向我解释说,我的设置可能是 nginx 接收所有请求,然后直接提供静态文件。对于非静态请求,它将工作传递给 apache,并充当中介。因此,当 apache 尝试向 nginx 发送数据(或 nginx 尝试向 apache 发送信息)时,可能出现问题。

    由于我以前从未使用过 nginx,所以我也没有想到检查 nginx 日志文件。还有一个我可以使用的错误:

    [error] 27453#0: *9223 上游从上游读取响应头时发送的头太大,客户端:

    我最终应用了另一个stack overflow solution 的第一个位:

    Add this to your nginx.conf file normally located at
    /etc/nginx/nginx.conf:
    
    proxy_buffer_size   128k; 
    proxy_buffers   4 256k;
    proxy_busy_buffers_size   256k;
    

    顺便说一下,它应该被添加到文件的 http 部分。这是解决方案中缺少的东西。

    【讨论】:

      【解决方案2】:

      我建议在失败后立即检查 Apache 服务器状态 (service httpd status)。没有太多细节可以更好地判断,但可能的情况之一是 Apache 在第 N 个请求上失败,因此 Nginx 无法将请求转发给 Apache 并向您返回“502 Bad Gateway”。

      Apache 故障可能是程序问题和错误配置问题。即第 N 个请求占用了太多 RAM(我的理解是您在请求之间保留了一些日期),然后被虚拟化引擎杀死(如果您有 VPS 而不是专用硬件服务器)。到目前为止只是一个假设,但我以前经历过这样的案例。

      【讨论】:

        猜你喜欢
        • 2023-04-05
        • 2019-09-20
        • 2016-07-29
        • 2015-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-07
        相关资源
        最近更新 更多