Nginx用502 Bad Gateway覆盖了通用的Symfony错误。

13 浏览
0 Comments

Nginx用502 Bad Gateway覆盖了通用的Symfony错误。

当我尝试访问一个不存在的路由或在Twig模板中犯错误时,我不会得到带有调试信息的Symfony错误页面,而是被重定向到默认的nginx 502 Bad Gateway页面。

日志中显示了一行有趣的内容:

013/07/17 16:11:41 [error] 16952#0: *187 upstream sent too big header while reading response header from upstream, client: 127.0.0.1, server: ftwo.localhost, request: "GET /heasd HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "ftwo.localhost"

有任何想法吗?

0
0 Comments

2023年的时候,我遇到了一个类似的问题。我只是安装了monolog:

composer require symfony/monolog-bundle

安装完后,502错误消失了,并且调试信息开始保存到项目文件夹中的/var/log文件夹中。

当我访问Symfony分析器时,也遇到了nginx 502错误,这个方法也解决了这个问题。

0
0 Comments

Nginx overwrites general symfony errors with 502 Bad Gateway的问题是由于ChromePHP插件生成的大型header导致nginx返回502 Bad Gateway错误。解决方法是在app/config/config_dev.yml文件中注释掉以下代码:

chromephp:

type: chromephp

level: info

更多信息请参考以下链接:

- https://github.com/symfony/symfony/issues/8413

- Enable Debug Component in Symfony 2.3

0
0 Comments

Nginx overwrites general symfony errors with 502 Bad Gateway问题出现的原因是nginx的缓冲区大小不足,导致无法正确显示错误页面的布局。解决方法是增加nginx配置中的缓冲区大小,并重新启动nginx。具体的解决方法如下:

首先,在nginx配置中增加缓冲区大小,可以参考这里的建议,将以下代码添加到nginx配置文件中:

proxy_buffer_size 128k;

proxy_buffers 4 256k;

proxy_busy_buffers_size 256k;

然后,在php配置的fastcgi部分(location ~ .php$)中增加缓冲区大小,可以参考这里的答案,将以下代码添加到php配置文件中:

fastcgi_buffer_size 128k;

fastcgi_buffers 4 256k;

fastcgi_busy_buffers_size 256k;

如果错误页面仍然无法正确加载布局,可能是因为css/js的问题。可以使用Firebug或开发者工具的网络面板检查错误信息。

另外,重新加载nginx应该就可以生效(sudo service nginx reload)。如果错误页面仍然无法正确显示布局,可以尝试运行assets install命令。

总之,设置nginx的代理缓冲区和fastcgi设置非常重要,可以解决Nginx overwrites general symfony errors with 502 Bad Gateway问题。此外,如果使用Chrome浏览器,可能会出现错误页面无法正确显示的问题,而Firefox浏览器则可以正常显示。所以两种解决方法都是正确的,一种是通过增加服务器缓冲区来解决问题,另一种是通过禁用额外的调试功能来解决问题。

0