0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Nginx で 499 が発生したので再現させた話

Last updated at Posted at 2021-03-09

今回の問題

Nginx + php-fpm で構成しているサービスで 499 エラーが結構な頻度で発生

どんな作りか

  • SPA で1画面でAPIを平均で5本くらい実行している
  • EC2 は複数台構成

まずやったこと

Nginx のログをひたすら解析
発生している画面を特定したり、重いAPIを特定したり、499 を出しているのが画面単位なのか、API単位なのか、とかとか

見えてきたこと

  • リクエストが重い(レスポンスに1秒以上かかっているAPIが多発している)時間帯に発生していることが多い(画面で呼ばれる API のうち複数本 499 になっている)
  • しかし平時でも発生はしている(画面で呼ばれる API のうち単発で 499 になってる)
  • 特定のサーバで 499 が多め(全体的に重め)
  • バランシングは問題ない様子

再現してみた

  1. 画面を開く
  2. バックでAPIを呼び出している間、ローディング中の画面が表示されるので、ブラウザのリロードボタンを押す
  3. ローディング中画面でブラウザのリロードの「×」ボタンを押す

→ Nginx のログに 499 が吐かれた

わかってしまえば至極当たり前なことで、API のレスポンスが遅くてローディング中の画面がずっと表示されてて、リロードして、それでも返ってこないので×を押して止めてみる、というのは誰しもやるということだった。

特定のサーバで 499 が多め

これに関してはインスタンスガチャで引いちゃった疑惑があるので今回はちょっと置いておく。

じゃぁ「次にどうするの?」ということになるが、EC2のスペックあげるとか php-fpm の設定見直すとかそういうことになるのかな、と。
ここから先はインフラ屋さんに任せたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?