【Rails】Bullet導入済みの開発環境でNginxの “upstream sent too big header while reading response header from upstream” エラーが発生した件

開発中のソースを開発環境にデプロイしたところ以下のエラーが発生しました。

2024/05/30 08:22:17 [error] 17725#0: *117340 upstream sent too big header while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: xxx.com, request: "GET /api/xxx/xxx/xxx HTTP/1.1", upstream: "http://127.0.0.1:3300/api/xxx/xxx/xxx", host: "example.com"


response headerに対する修正は行っていなかったので変だなと思いながら確認したところ、
response headerのX-bullet-footer-textとX-bullet-console-textに大量のログがはかれておりました。

その結果headerのサイズが肥大し、Nginxに設定されている閾値を超えてしまっていたようです。
ソースを修正しBulletのエラーを解消したところ、無事エラーは解消されました。
Bulletのログがheaderにはかれることは知らなかったので一つ勉強になりました。

ちなみにですが、
headerに記載されている、
X-bullet-footer-textとX-bullet-console-textはブラウザにwarnings logを表示するために利用されているそうです。

また、Bullet.skip_http_headers=trueを設定するとheaderにログを出力しないようにもできるようですが、
本質的な対応とならないので、今回は設定の変更はしませんでした。

Bullet.skip_http_headers: don’t add headers to API requests, and remove the javascript that relies on them. Note that this prevents bullet from logging warnings to the browser console or updating the footer.

https://github.com/flyerhzm/bullet

似たエラーに遭遇している方など、何かの参考になれば幸いです。

役に立ったらシェアしていただけると嬉しいです
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次