nginx 发送空白 200 响应

Spa*_*pta 21 http nginx

我正在配置一个故障转移服务器,其任务是接受任何传入请求,并以空白 200 响应进行回复。我们的想法是尽量减少回复时间并确保我们不发送任何 40x 或 50x。

我尝试使用return 200;Nginx 中的所需位置,但我的监控系统 (Pingdom) 不喜欢响应,并认为服务器没有响应。

有没有更好的方法来做到这一点,当然,服务器上的开销最小?

小智 33

您可以通过如下配置块让 nginx 返回一个空的 HTTP 200:

location = /health {
  return 200;
  #access_log off;
}
Run Code Online (Sandbox Code Playgroud)

access_log如果您不想记录所有这些健康检查,您可以取消注释该行。

  • 应该注意,位置后面的“=”符号很重要。没有它,那个文件必须存在,否则 nginx 不会返回 200。有了它,你可以随意设置任何你想要的位置,而不必担心文件,nginx 会很乐意返回 200。 (6认同)

Ale*_*rov 25

HTTP 状态代码204 No Content的意思是“我已经完成了请求,但没有要返回的正文”:

10.2.5 204 无内容

服务器已完成请求但不需要返回实体主体,并且可能想要返回更新的元信息。响应可以包含实体头形式的新的或更新的元信息,如果存在,应该与请求的变体相关联。

如果客户端是一个用户代理,它不应该改变导致请求被发送的文档视图。此响应主要是为了允许输入操作,而不会导致用户代理的活动文档视图发生变化,尽管任何新的或更新的元信息都应该应用于当前在用户代理的活动视图中的文档。

204 响应不能包含消息体,因此总是由头字段之后的第一个空行终止。