Cloud Foundry 应用程序停止时如何显示自定义错误页面?

How to display a custom error page when cloud foundry app is stopped?

如果 cloud foundry 应用程序实例停止,如何显示自定义错误页面?我不想显示默认错误页面(404 应用程序不可用)。有什么方法可以使用路由或使用 CF Java API?

来实现此行为

您在这里看到 404 的原因是当您的应用程序停止时,没有任何内容映射到您的应用程序的路由。这意味着 Gorouter 在它的路由 table 中没有条目用于您的应用程序使用的路由,因此它将 return 一个 404(即该路由不存在)。

如果您希望在未使用该应用程序时为您的路线显示自定义消息,可以考虑几个选项。

  1. 部署一个小型静态应用程序,可能使用 staticfile_buildpack 或 nginx_buildpack,显示您的自定义消息。

    现在,在停止主应用程序之前,将它的路由交换到小型静态应用程序 (cf unmap-route/cf map-route)。路由仍然存在,因此 Gorouter 不会 return 404,而是请求将转到您的小型静态应用程序,它可以 return 任何它想要的东西。

  2. 部署一个小型静态应用程序,可能使用 staticfile_buildpack 或 nginx_buildpack,显示您的自定义消息。

    Create a wildcard route 并将其映射到小型静态应用程序。在这种情况下,您不需要 unmap/map 到您的小型静态应用程序的路由。

    相反,您将通配符路由映射到您的小型静态应用程序,例如 *.example.com。然后将 www.example.commy-cool-app.example.com 等常规路由映射到您的实际应用程序。当实际应用程序启动并且 运行 时,它的路由更具体,因此 Gorouter 会将流量发送到该应用程序。当您停止您的主应用程序时,路由将从 Gorouter 的路由 table 中删除,因此进入的任何请求都将匹配通配符路由并转到您的小型静态应用程序。