【Ubuntu 502エラー】Nginxでアップストリームが大きすぎるサーバーエラーの解決策

スポンサーリンク

こんにちは、近ため管理人です。

今回はとあるサービスの運営中に発生したエラー、親の顔より見たことのある「ubuntu 502 bad gateway」の解決策についてです。

ローカル環境(Apache)では問題なく動作したのに、本番環境(Nginx)だとサーバーエラーになってしまったのですが、あっさり解決できたので、その方法を備忘録がてらメモ書きしておきます。

Ubuntu 502 bad gatewayエラーとは

このエラーは一般的にウェブサーバーが他のサーバーからの適切なレスポンスを受け取れないときに発生するHTTPステータスコードです。Ubuntuや他のオペレーティングシステムでNginxなどのウェブサーバーを使用している場合、このエラーは以下のような原因で発生することがあります:

  • 上流のサーバーがダウンしている、またはレスポンスを返すことができない。
  • ネットワークの問題により、ウェブサーバーが上流のサーバーと通信できない。
  • ウェブサーバーの設定ミス、特にプロキシサーバーやゲートウェイの設定に問題がある場合。
  • サーバーが過負荷状態で、適切なレスポンスを返せない。

今回はサーバーダウンしておらず、ネットワークには問題がない過負荷状態でもない、つまりリバースプロキシをしているWebサーバーに問題がある可能性が高いと辺りをつけました。

Nginxのエラーログを追う

Nginxのエラーログは通常、こちらに出力されます。

$ sudo less /var/log/nginx/error.log

そして、以下のようなログが表示されていました。

[error] 944673#944673: *88528 upstream sent too big header while reading response header from upstream

too big headerということで、ヘッダーサイズが大きすぎるということが分かりました。

 [error] upstream sent too big header while reading response header from upstreamを解決するには

原因が分かれば簡単です。Nginxの設定ファイルに大きなヘッダーでも処理できるよう設定内容を追記していきます。

$ sudo vi /etc/nginx/nginx.conf

で設定ファイルを開きます。そして、以下を追記します。

http{
   proxy_buffer_size 128k;
   proxy_buffers 4 256k;
   proxy_busy_buffers_size 256k;
}

設定ファイルの変更が完了したら、「:wq」で保存し、Nginxを再起動します。

$ sudo service nginx restart

以上です。皆さんのお力になれていれば幸いです。最後までお読みいただきありがとうございました。

コメント

タイトルとURLをコピーしました