如果 Cloud Foundry 应用程序实例停止,如何显示自定义错误页面?我不想显示默认错误页面(404 应用程序不可用)。有没有办法使用路由或使用 CF Java API 来实现这种行为?
1 回答
您在此处看到 404 的原因是因为当您的应用程序停止时,没有任何内容映射到您的应用程序的路由。这意味着 Gorouter 的路由表中没有您的应用程序使用的路由条目,因此它将返回 404(即该路由不存在)。
如果您想在应用程序未使用时为您的路线显示自定义消息,可以想到几个选项。
部署一个小型静态应用程序,可能使用 staticfile_buildpack 或 nginx_buildpack,显示您的自定义消息。
现在,在您停止主应用程序之前,将其路由交换到小型静态应用程序 (
cf unmap-route
/cf map-route
)。路由仍然存在,因此 Gorouter 不会返回 404,而是请求将转到您的小型静态应用程序,该应用程序可以返回任何它想要的。部署一个小型静态应用程序,可能使用 staticfile_buildpack 或 nginx_buildpack,显示您的自定义消息。
创建通配符路由并将其映射到小型静态应用程序。在这种情况下,您不需要取消映射/映射到您的小型静态应用程序的路线。
相反,您将通配符路由映射
*.example.com
到您的小型静态应用程序。然后您将您的正常路线映射www.example.com
到my-cool-app.example.com
您的实际应用程序。当实际应用程序启动并运行时,它的路由更加具体,因此 Gorouter 会将流量发送到该应用程序。当您停止您的主应用程序时,路由将从 Gorouter 的路由表中删除,因此任何进来的请求都将匹配通配符路由并转到您的小型静态应用程序。