2017-10-26 9 views
3

フロントエンドにメンテナンスページを追加します。このメンテナンスページは、バックエンドが現在利用できない場合(停止またはデプロイなど)に表示されます。アプリケーションが実行されていない場合、次のメッセージが404ステータスコードと共に表示されているアプリケーションが(のみ次いでなど)停止しているときアプリがCloudFoundryで現在停止しているかどうかをSwisscom Cloudで確認するには?ヘッダX-Cf-Routerrorは信頼性がありますか?

404 Not Found: Requested route ('name.scapp.io') does not exist. 

また、ヘッダ存在がある:

X-Cf-Routererror: unknown_route 

アプリケーションが実行されていない場合、このヘッダーは確実に追加されますか?このような場合は、このフラグを使用して保守ページを表示することができます。ところで


:アプリケーションがクラッシュ/開始されていない場合、それはすなわち停止アプリケーションや間違ったリクエストルート間で異なる、5xxステータスコードを提供するために、より多くの意味を成しませんか? 503エラーをキャッチすることは、ビジネスロジックを妨げないので、はるかに簡単です(404はアプリケーション内で使用されます)。

答えて

4

また、ワイルドカードルートを使用することもできます。

https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#create-an-http-route-with-wildcard-hostname

リクエスト経路が存在しない場合、ルート要求のための代替アプリとしてワイルドカード経路作用にマッピングされたアプリケーション。

したがって、メンテナンスページを表示する静的なアプリケーションにワイルドカードルートをマップできます。特定のルートにマッピングされたアプリケーションがダウンしているか、使用できない場合は、メンテナンスページではなく、あなたの質問に関しては404

で表示されます...

ところで:それはないだろうアプリケーションが起動/クラッシュしていない、つまり停止しているアプリケーションと間違った要求経路が異なる場合、5xxのステータスコードを提供する方が理にかなっていますか? 503エラーをキャッチすることは、ビジネスロジック(アプリケーション内で404が使用される)に干渉しないため、はるかに簡単です。

GoRouterは、受信リクエストをアプリケーションにマッピングするためのルートのリストを保持します。アプリケーションがダウンしている場合は、ルーティングテーブルにルートがないため、404になります。GoRouterの観点から考えると、意味があります。ルートがないので、404 Not Foundが返されます。 503が意味をなさせるためには、GoRouterはアプリについて知り、それがダウンしているか、応答していないことを知る必要があります。

は、私はあなたが上記のワイルドカードのルートを使用した場合、その動作を実現することができるかもしれないと仮定し、代わりにメンテナンスページを表示するだけで、それは助けHTTP 503

希望を返してきました!

+0

よかった、ありがとう!それは本当に素晴らしい解決策です! –

+1

これは本当に素晴らしい解決策のように思えます。ただし、独自のドメインを提供する場合にのみ有効です。シャードドメインのワイルドカードルートを作成できない場合があります。 – Lafunamor

1

表示される404エラーはCloudFoundrysルーティング層によって生成され、アップストリームで管理されます。

一般的に、このようなエラーメッセージを表示したくない場合は、青緑の配置を使用できます。 https://docs.cloudfoundry.org/devguide/deploy-apps/blue-green.html

また、この機能を実装するルーティングサービスを追加することもできます。 https://docs.cloudfoundry.org/services/route-services.html

+0

あなたの答えをありがとう!私はおそらく@ダニエルミクサのソリューションと一緒に行きます。 –

関連する問題