45

我的网站上有一个页面,它报告网站的运行状况并设置 HTTP 200 状态代码,一切正常。外部监控程序使用此页面来检查站点是否已启动。

当这个页面被点击时,我进行了一个非常轻量级的 DB proc 调用,以查看 DB 是否正常运行。如果这失败了,我想向监视器返回一个有意义的 HTTP 错误代码,让它知道一切都不好。

据我所知,没有 HTTP 状态显示“我依赖的第三方组件已关闭”,那么在这种情况下您会返回什么?

503服务不可用...?

4

3 回答 3

41

这正是 503 的含义。

503 表示服务器依赖连接其他服务,没有及时响应。

服务器错误 5xx

检查维基百科和那里的列表似乎暗示504将是我正在考虑的。很可能链接已过时。

所以:

504网关超时

服务器充当网关或代理,没有收到来自下游服务器的及时请求。

于 2009-09-16T17:23:20.543 回答
37

我怀疑500或503是合适的。503一般用于超载或维修工况,但我认为根据您的情况使用它不会不合理。

于 2009-09-16T17:18:34.563 回答
-1

听起来您应该将监控不仅仅基于状态返回。您正在尝试传递比 HTTP 状态代码设计用于通信的更复杂的信息。

或者,只需选择一个代码,甚至编写一个代码,然后设置您的监控以将其视为“db down”。

于 2009-09-16T17:21:41.343 回答