bugfix> php > 投稿

指定された入力でデータベースを更新する更新フォームがあります。私は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の悪いゲートウェイをより頻繁に与えます。

回答 2 件
  • HTTP 502:Bad Gateway応答は、デフォルトでLaravelによって出力されるものではなく、サーバーによって出力されるものです。

    The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server.

    ただし、無効な応答がアプリケーションに起因している可能性は十分にあるため、デバッグを試みることは理にかなっています。

    このような問題には、より多くの原因が考えられます。それらの概要と考えられる修正を以下に示します。

    Laravelでデバッグが有効になっていることを確認してください .env ファイルを作成し、キャッシュをクリアしました。

    ファイルのアクセス許可が正しく設定されていません。 (サーバーによって異なりますが、一般的な経験則)ファイルの場合は644、フォルダー/ディレクトリの場合は755である必要があります。

    PHPファイルの1つにエラーがあります-有効にしてみてください display_errors PHP構成のオプション。

    PHPのメモリとプロセスの制限- memory_limit PHP構成で。

    その他のPHPプロセスの制限-サーバー管理者/ホスティングプロバイダーに確認してください

    破損したPHPモジュール、拡張機能、ビルド-サーバー管理者/ホスティングプロバイダーに確認してください

    あいまい-ポイント1〜6で修正が生成されない場合、通常、最善のアクションはApacheエラーログを確認することです。

    TL;DR:ネットワーク/システム管理者に原因を特定してもらう必要があります HTTP 502 。 Apacheエラーログはおそらくあなたに非常に良い兆候を与えるでしょう。

  • 私の場合、大きなヘッダーを処理するようにnginxが構成されていないことが原因で発生しました。これは、ログに表示されます。

    upstream sent too big header while reading response header from upstream
    
    

    解決策は、これらの行をnginx構成に追加することでした。

    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    
    

あなたの答え