Laravel 在 Cloudflare 上产生 502 Bad Gateway 表单错误

Laravel on Cloudflare produces 502 Bad Gateway on form errors

在我的 Laravel 应用程序中,我有一个使用标准 Laravel 验证的表单。如果失败,它只是重定向回相同的表单并显示错误。这在我的本地计算机和开发站点(与生产站点托管在同一台服务器上)上都运行良好。

但是,在我的生产站点中,该错误会生成 502 Bad Gateway 页面(由 CloudFlare 呈现)。

我能在开发和生产(或临时)站点之间找到的唯一区别是环境配置(最显着的是 APP_ENV)。我认为这可能是与 SSL 和重定向有关的错误,但开发环境具有与暂存和生产相同的 SSL 设置,但开发在页面上显示了它应该的错误,而暂存和生产显示502. 我在 nginx 或 Laravel 错误日志中找不到任何内容。如果有人处理过这个问题,我想要一些指导,在哪里看,无论是 ngnix 配置、Cloudflare 配置、SSL 配置还是 Laravel 配置。

这似乎可以通过在 nginx 配置中添加以下内容来解决:

fastcgi_buffers 16 16k; 
fastcgi_buffer_size 32k;

到目前为止没有副作用,我会用几天时间看看所有功能是否正常,然后再确认这是一个修复。

在 Nginx 配置集中

fastcgi_intercept_errors off;

它决定代码大于或等于 300 的 FastCGI 服务器响应是应该传递给客户端还是被拦截并重定向到 nginx 以使用 error_page 指令进行处理。

Syntax: fastcgi_intercept_errors on | off;

Default: fastcgi_intercept_errors off;

Context: http, server, location