2017-11-20 5 views
0

Rubyビルドパックを使用して、プライベートCloudFoundryインスタンスにデプロイするアプリケーションがあります。場合によっては、インバウンドリクエストによってアプリケーションがクラッシュし、コンテナが再起動することがあります。この時点で、ユーザーにはError 502 - container was unable to service your requestなどのエラーページが表示されます。これは私のアプリが提供するエラーではなく、インフラストラクチャであるため、私はそれを支配していません。CloudFoundryエラーページにカスタムヘッダーを追加するにはどうすればよいですか?

私のアプリは定期的にリフレッシュするダッシュボード/キオスクの一部として実行されるように設計されており、成功したリクエストごとにRefreshヘッダーを追加します。リフレッシュ時間はダイナミックで常に同じ値ではない(5分から0秒の間)。ブラウザのリフレッシュ拡張機能を使用しないのはこのためです。

エラーページにヒットしたときは、Refreshヘッダーがないので、ページは永遠にそこにしか置かれません。エラーページにRefreshヘッダーを追加するCloudFoundryを取得するにはどうすればよいですか?私はその値が私のmanifest.ymlに設定されたいくつかの静的な値であることに満足していますが、それを行うためのオプションはありません。

+0

インスタンスカウントを1つ以上に拡大しようとしましたか?私の理解は、アプリケーションがクラッシュして失敗した場合、利用可能な他のアプリケーションインスタンスがある限り、GoRouterは再試行する必要があるということです。 https://github.com/cloudfoundry/gorouter#load-balancing –

+0

@DanielMikusaはい、私は2つのインスタンスを実行していますが、それは効果がないようです。それは両方のクラッシュにそれらを引き起こしている可能性があります、私は思います。 – simonwo

+0

それは可能です。両方のインスタンスがダウンした場合は、502を取得します。 'cf events'を実行すると、アプリケーションがいつクラッシュしたかを確認し、時刻が近いか重なっているかどうかを確認できます。 –

答えて

1

Goroutersによって生成された応答を変更することはできません。 THOSEをカスタマイズしたい場合は、インフラストラクチャからのエラーを監視する外部ロードバランサに何かを置く権限があるかどうかを検討する必要があります(このようなエラーのすべてにはX-Cf-*で始まるヘッダーが含まれていると思われますが、 )、受信時にカスタマイズすることができます。

関連する問題