cloud-foundry - 内部服务器错误被映射到 302 Found,重定向到 Swisscom CloudFoundry 上的 "/offline_pages/"

标签 cloud-foundry http-status-codes http-status-code-500 swisscomdev

我们将 Swisscom CloudFoundry 解决方案与 Java 和 Node.JS 应用程序结合使用。从最近开始,每个以 5xx 开头的 HTTP 状态代码(使用 500503 测试)都会自动映射到状态代码 302 Found将 header 重定向到 /offline_pages/(使用 DELETEPOSTGET 测试)。这是在我们的应用程序和前端之间完成的,请求状态代码为 5xx 的资源。

我们正在积极使用 5xx 状态代码通过我们的 REST API 向前端报告服务器错误(包括维护停机时间等)。由于自动映射,这不再起作用。例如,不再自动重定向到维护页面,因为前端不会将 3xx 状态视为错误。

这个问题出现在我们的两个应用程序(Java 和 Node.JS)中。但是,日志显示正确的 503500 错误。此外,在我们应用程序的代码库中,重定向 URL 字符串 /offline_pages/ 甚至不存在;由此得出结论,这必须在我们的应用程序之外完成。

如果可见的浏览器页面返回 500,用户实际上会被重定向到显示 Swisscom 错误页面的页面 /offline_pages。这个错误页面(它被重定向到)然后返回一个 200 状态代码,使得无法在 Kiosk 浏览器中自动检测错误。

是否有可能配置 Swisscom CloudFoundry 以停用这种突然发生的行为?


这是前端发出的请求:

GET /api/account HTTP/1.1
Host: <HOST>
Connection: keep-alive
Accept: application/json, text/plain, */*
User-Agent: <USER-AGENT>
Referer: <REFERER>
Accept-Encoding: gzip, deflate, br
Accept-Language: <LANGUAGES>

这是响应:

HTTP/1.0 302 Found
Location: /offline_pages/
Connection: Keep-Alive
Content-Length: 0

预期与服务器日志中的相同,在本例中为 503。以下是此请求的日志:

2017-11-14 13:54:07 [RTR/1] OUT <HOST> - [2017-11-14T12:54:07.455+0000] "GET /api/account HTTP/1.1" 503 [...]

最佳答案

Swisscoms 负载均衡器的重新配置导致了这种奇怪的行为。现在应该修复了。

关于cloud-foundry - 内部服务器错误被映射到 302 Found,重定向到 Swisscom CloudFoundry 上的 "/offline_pages/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47286901/

相关文章:

java - 微服务——在不改变代码的情况下改变服务到底意味着什么?

usability - 友好的HTTP 401状态代码消息?

android - 如何修复 Retrofit Android Studio 中的 500 响应代码错误

rest - 我应该何时从 REST 应用程序向客户端返回 HTTP 状态代码 500(内部服务器错误)?

javascript - Javascript 如何解释返回 500?

cloud-foundry - 如何使用 cf 程序查看我的 VCAP_SERVICES 环境变量?

npm - 为什么我的预构建 Cloud Foundry 节点应用程序尝试获取 node_modules 中已有的模块?

cloud-foundry - 云类型转换: Restage an application without downtime

php - 如何在不维护状态名称数组的情况下用PHP发送状态代码?

c# - 为什么 HttpException.GetHttpCode() 返回一个 int 而不是 System.Net.HttpStatusCode?