如何修复由 twig 中的简单逻辑导致的错误网关错误?

问题描述 投票:0回答:1

我正在为竞赛活动制作一个网络应用程序,需要在网页上创建/编辑/删除按钮,这样我就不需要在后端执行所有操作。

它是基于 PHP/Symfony 构建的,我使用 TWIG 作为模板处理程序。

在 TWIG 文件中,我有代码

{% if is_granted("ROLE_ADMIN") %}
;这在我当地的环境中完全有效。

但是当我使用生产环境时,这个

{% if is_granted("ROLE_ADMIN") %}
逻辑的两个实例使页面出现上游错误:

2023/10/04 14:34:10 [error] 309322#309322: *230714 upstream sent too big header while reading response header from upstream, client: ***.***.**.**, server: ***, request: "GET /favicon.ico HTTP/2.0", upstream: "fastcgi://unix:/run/php/php8.2-fpm.sock:", host: "***", referrer: "https://***/1/competition-locations"

(隐藏网站和IP地址)

我找到了原因,这只是

{% if is_granted("ROLE_ADMIN") %}
行 - 内容不会影响任何内容,当我删除此行时,页面立即工作。

这只发生在该行的两个实例上,即使整个项目中有超过 25 个实例。

我已经尽可能地调试了它(只是完全删除了

{% if is_granted("ROLE_ADMIN") %}
块),这显然使页面正常工作,但我需要这些按钮存在,所以我不知道什么会导致此错误。

老实说,我不知道是什么原因导致这个问题以及如何发生这种情况,我以前从未遇到过这个问题,甚至我经常使用 Symfony 的老板也不知道任何事情。

php symfony twig
1个回答
0
投票

您的产品环境似乎正在使用 nginx。 我可以建议你检查一下你的 nginx 配置吗? 该错误消息很可能与缓冲区大小过低有关。

查看您的

nginx.conf
或 vhost 这部分来调整相应的值。

server {
 proxy_busy_buffers_size   512k;
 proxy_buffers   4 512k;
 proxy_buffer_size   256k;
 # rest of the nginx config below #
}

您可以在此处找到有关配置的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.