有时Nginx $ upstream_response_time会返回2个值。
xxx.xxx.xxx.xxx - - [08/Nov/2017:23:43:25 +0900] "GET /xxxxxxxxxxxx HTTP/2.0" 200 284 "https://xxxxxxxxxxx" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "-" "0.015" "0.001, 0.014"
" 0.001,0.014 "这是$ upstream_response_time。 为什么这有两个值?
日志格式:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$request_time" "$upstream_response_time"';
答案 0 :(得分:2)
请注意,这是documentation:
中的详细说明几个响应的时间用逗号和冒号分隔,如$ upstream_addr变量中的地址。
这意味着它向后端发出了多个请求,很可能你有一个裸proxy_pass
主机可以解析为不同的IP(通常情况下就像亚马逊ELB作为原点),你有吗?已配置upstream
,其中包含多个服务器。除非禁用,否则proxy
模块将针对所有健康后端进行循环尝试。这可以从proxy_next_upstream_*指令配置。
例如,如果这不是所需的行为,您可以这样做:
proxy_next_upstream off;