如何通过Nginx的$upstream_response_time实现后端服务响应延迟的监控?
- 内容介绍
- 文章标签
- 相关推荐
本文共计895个文字,预计阅读时间需要4分钟。
请提供需要改写的伪原创开头内容,我将根据您的要求进行改写。
它到底在测什么?
这个变量从 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 向上游服务器(比如 Tomcat、Gunicorn 或 PHP-FPM)发起连接开始计时,到完整接收到响应头(或整个响应体,取决于配置)为止,单位是秒,精度到毫秒。
- 成功响应时显示为类似
0.042(即 42 毫秒) - 发生重试时,多个值用逗号分隔,如
0.018, 0.063表示第一次转发耗时 18ms,第二次(重试)耗时 63ms - 某次连接失败、超时或被拒绝,对应位置显示
-,例如0.021, - - 它和
$request_time不同——后者包含客户端上传、Nginx 处理、后端响应、响应下发全过程,通常明显更大,尤其在弱网或大文件场景下
为什么单看它还不够?必须搭配 $upstream_addr
$upstream_response_time 本身不告诉你“这个耗时发生在哪台机器上”。没有地址信息,就无法定位是某台后端变慢、还是整体退化。

