0
1

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 5 years have passed since last update.

Nginxのリバースプロキシでoriginから404や503が返却された時にRetryさせたいときの設定

Last updated at Posted at 2018-08-16

とりあえず以下の設定をしておけばいいらしい。

upstream example.com {
  server backend1-example.com;
  server backend1-example.com;
  server backend1-example.com;
}

upstreamはNginxでLBを実現させるためのものだが、その仕様の一つとしてtimeoutしたときに次のサーバーに対してretryするという挙動をする。なので通常の使い方だとは異なるサーバーを指定するわけだが、originサーバーは1つでリトライ処理だけを取り込みたい場合は上記の設定のように同一サーバーを設定しておけばリトライの挙動が実現できる。

レスポンスが404や503などタイムアウト以外のケースでリトライさせたい場合はproxy_next_upstreamを指定する

詳しいことは大体この記事に書いてある。
https://blog.1q77.com/2017/06/retry-function-of-reverseproxy/

ただし上記の記事ではステータスコード404や403では動かないとあるので補足しておくと、error_pageを無効にしないとupstreamの設定が上書きされてしまうとかなんとか。
https://forum.nginx.org/read.php?2,268529,268544#msg-268544

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?