为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 在提交验证失败表单时给出 502 错误

Laravel 在提交验证失败表单时给出 502 错误

PHP
泛舟湖上清波郎朗 2022-10-28 16:34:17
我有一个更新表单,它使用给定的输入更新我的数据库。我使用Laravel 验证来创建一个更新验证器来检查给定的电子邮件是否是唯一的(如果不是,它应该向我抛出验证错误并重新加载更新页面)。这是我的验证器:public function rules()    {        $contact_guid = $this->route('contact_guid');        return  [            'contact_email' => [                Rule::unique('contact')->ignore($contact_guid, 'contact_guid'),            ],        ];    }    public function messages()    {        return [            'contact_email.required' => 'E-mail is required.',            'contact_email.unique'  => 'This e-mail is already in use.',        ];    }问题似乎是一些联系人给出了502 error某些独特的电子邮件,而其他联系人在不同的独特电子邮件上收到了 502 错误。我注意到,一旦我删除'contact_email.unique'  => 'This e-mail is already in use.',了我的应用程序就可以正常工作并且它不会给我502 error.编辑:我发现消息的时间越长'contact_email.unique'  => 'This e-mail is already in use.',,它就越经常给我 502 bad gateway。
查看完整描述

3 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

就我而言,这是由于 nginx 未配置为处理大标题而发生的,我在日志中看到了这一点:

upstream sent too big header while reading response header from upstream

解决方案是将这些行添加到 nginx 配置中:

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;


查看完整回答
反对 回复 2022-10-28
?
HUWWW

TA贡献1874条经验 获得超12个赞

HTTP 502: Bad Gateway 响应不是默认由 Laravel 输出的响应,而是由您的服务器输出的响应:

超文本传输协议 (HTTP) 502 Bad Gateway 服务器错误响应代码表示服务器在充当网关或代理时,收到了来自上游服务器的无效响应。

然而,无效响应完全有可能源于您的应用程序,因此尝试调试它是有意义的。

导致此类问题的原因可能更多,以下是它们的简要概述和潜在的解决方法:

  • 确保在 Laravel.env文件中启用调试并清除缓存。

  • 文件权限设置不正确。应该是(取决于服务器,但一般的经验法则)文件为 644,文件夹/目录为 755。

  • 一个 PHP 文件中的错误 - 尝试display_errors在您的 PHP 配置中启用该选项。

  • PHP 内存和进程限制 - 尝试增加您memory_limit的 PHP 配置。

  • 其他 PHP 进程限制 - 请咨询服务器管理员/托管服务提供商

  • 损坏的 PHP 模块、扩展、构建 - 请与服务器管理员/托管服务提供商联系

  • 晦涩难懂的 - 如果第 1-6 点没有产生修复,通常最好的做法是检查 Apache 错误日志。

TL;DR:您需要让您的网络/系统管理员确定HTTP 502. Apache 错误日志可能会给您一个很好的指示。


查看完整回答
反对 回复 2022-10-28
?
翻阅古今

TA贡献1780条经验 获得超5个赞

我遇到过同样的问题。增加缓冲区大小修复它。此外,我在我的应用程序中使用 cookie 作为会话驱动程序,我猜 ~1kb 会话 cookie 占用了所有缓冲区?

将会话驱动程序更改为文件/数据库也解决了该问题


查看完整回答
反对 回复 2022-10-28
  • 3 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信