我的codeigniter应用程序正在针对502错误的网关错误运行。我知道这个主题还有其他线程,但我不是服务器向导,症状不同,我的服务器配置也略有不同,或者我认为。
这是我的情况。
我的问题是:这可能是编码问题,还是最明确(或最有可能)服务器配置错误?如果是后者,当然欢迎所有建议,但请记住它是一个plesk / apache / nginx环境。
希望你们能帮忙!
答案 0 :(得分:7)
我弄清楚出了什么问题。首先,一位拥有更多服务器知识的同事向我解释说,我的设置可能是nginx接收到所有请求,然后直接提供静态文件。对于非静态请求,它将工作传递给apache,并充当中介。因此,当apache尝试向nginx发送数据时(或者当nginx尝试向apache发送信息时)可能出现了问题。
由于我之前从未使用过nginx,我也没想过检查nginx日志文件。并且我可以使用错误:
[错误] 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部分。这就是解决方案中缺少的东西。
答案 1 :(得分:2)
我建议在失败后立即检查Apache服务器状态(service httpd status
)。没有太多细节可以更好地判断,但可能的情况之一是Apache在第N个请求上失败,因此Nginx无法将请求转发给Apache并向您返回“502 Bad Gateway”。
Apache失败可能是编程问题和错误配置问题。即在Nth请求上占用太多RAM(我的理解是你在请求之间保留一些日期)然后被虚拟化引擎杀死(如果你有VPS而不是专用硬件服务器)。到目前为止只是一个假设,但我之前遇到过类似的情况。