我有一个奇怪的问题。我的应用程序中的一切都运行得很好,包括简单的验证规则。
但是,当我尝试验证数组时,NGINX却给我一个502 bad gateway
错误。
例如,以下方法可以正常工作:
$this->validate($request, [
'name' => 'required',
]);
但这会导致坏网关错误:
$this->validate($request, [
'steps.*.name' => 'required',
'steps.*.title' => 'required',
'steps.*.type' => 'required',
'steps.*.answer_options' => 'nullable|required_if:steps.*.type,Question',
'steps.*.input_type' => 'nullable|required_if:steps.*.type,Input',
]);
我已尝试在服务器配置中增加内存限制等,但没有任何解决问题的方法...如何更正此问题并确保生产服务器上不会发生此问题?
2条答案
按热度按时间jgovgodb1#
似乎只有当你有一个大的POST请求时才会出现问题。你能试着把这些添加到你的
nginx.conf
文件中吗:您可以根据需要增加这些值,具体取决于POST数据的大小。
juud5qan2#
我在尝试使用在Mac上运行的Laravel v8验证阵列时遇到了同样的问题。
我以前从未见过它,但我最终在
~/.config/valet/Log/nginx-error.log
中检查了我的日志,结果显示upstream sent too big header while reading response header from upstream
。正如在@aceraven777的回答中提到的,你需要更改一些nginx设置,下面的方法对我有效:
使用以下命令创建
~/.valet/Nginx/all.conf
:将此附加到
/usr/local/etc/nginx/fastcgi_params
感谢@elaman对GitHub代客泊车问题的上述步骤。
我运行了
valet restart
之后,我的页面开始输出验证错误,而不是502'ing。你可能只是可以重新启动nginx,而不是作为一个整体代客,但我从来没有机会尝试,因为它为我工作的第一次。