如何通过Nginx的$upstream_response_time实现后端服务响应延迟的监控?

2026-05-06 20:410阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计895个文字,预计阅读时间需要4分钟。

如何通过Nginx的$upstream_response_time实现后端服务响应延迟的监控?

请提供需要改写的伪原创开头内容,我将根据您的要求进行改写。

它到底在测什么?

这个变量从 Nginx 向上游服务器(比如 Tomcat、Gunicorn 或 PHP-FPM)发起连接开始计时,到完整接收到响应头(或整个响应体,取决于配置)为止,单位是秒,精度到毫秒。

  • 成功响应时显示为类似 0.042(即 42 毫秒)
  • 发生重试时,多个值用逗号分隔,如 0.018, 0.063 表示第一次转发耗时 18ms,第二次(重试)耗时 63ms
  • 某次连接失败、超时或被拒绝,对应位置显示 -,例如 0.021, -
  • 它和 $request_time 不同——后者包含客户端上传、Nginx 处理、后端响应、响应下发全过程,通常明显更大,尤其在弱网或大文件场景下

为什么单看它还不够?必须搭配 $upstream_addr

$upstream_response_time 本身不告诉你“这个耗时发生在哪台机器上”。没有地址信息,就无法定位是某台后端变慢、还是整体退化。

阅读全文

本文共计895个文字,预计阅读时间需要4分钟。

如何通过Nginx的$upstream_response_time实现后端服务响应延迟的监控?

请提供需要改写的伪原创开头内容,我将根据您的要求进行改写。

它到底在测什么?

这个变量从 Nginx 向上游服务器(比如 Tomcat、Gunicorn 或 PHP-FPM)发起连接开始计时,到完整接收到响应头(或整个响应体,取决于配置)为止,单位是秒,精度到毫秒。

  • 成功响应时显示为类似 0.042(即 42 毫秒)
  • 发生重试时,多个值用逗号分隔,如 0.018, 0.063 表示第一次转发耗时 18ms,第二次(重试)耗时 63ms
  • 某次连接失败、超时或被拒绝,对应位置显示 -,例如 0.021, -
  • 它和 $request_time 不同——后者包含客户端上传、Nginx 处理、后端响应、响应下发全过程,通常明显更大,尤其在弱网或大文件场景下

为什么单看它还不够?必须搭配 $upstream_addr

$upstream_response_time 本身不告诉你“这个耗时发生在哪台机器上”。没有地址信息,就无法定位是某台后端变慢、还是整体退化。

阅读全文