Using $upstream_response_time in add_header shows a dash

MarioIshac nginx-forum at forum.nginx.org
Fri Feb 5 20:38:16 UTC 2021


Hello all,

I have this example nginx.conf:
https://gist.github.com/MarioIshac/e6971ab0b343da210de62ebb1c6e2f99 to
reproduce the behavior.

I start nginx and an example upstream with:

python3 -u -m http.server 8001 > app.log 2>&1 & sudo nginx > nginx.log 2>&1

Upon hitting nginx with `curl -i localhost:8000`, I see these response
headers:

X-Trip-Time: 0.001
X-Addr: 127.0.0.1:8001
X-Status: 200
X-Process-Time: -

`cat app.log` shows that upstream was hit successfully, and `cat nginx.log`
shows that nginx knows the $upstream_response_time at log time, as I get
this log:

127.0.0.1:8001 200 0.004

Why does nginx substitute the request time and relevant response metadata
(like $upstream_status) at add_header time successfully, yet substitutes the
upstream response time with a dash?

My goal with returning $upstream_response_time in a header is so the client
can know how much of their request latency was due to their upload speeds
vs. server processing time. 

-Mario

Posted at Nginx Forum: https://forum.nginx.org/read.php?2,290674,290674#msg-290674



More information about the nginx mailing list