Nginx使用日志输出上游服务器和自身的处理时间

场景:
    Nginx的后端跟着Tomcat,现在要统计实现Nginx的处理时间以及后端服务器的返回时间。

目的:
    对于一个客户端请求,使用日志输出Nginx自身的处理时间,上游服务器的处理时间。

实现:
    通过upstream模块的upstream_response_time变量来获取相关信息。
配置:

1.定义logformat
log_format timed_combined '$remote_addr - $remote_user [$time_local] '
             '"$request" $status $body_bytes_sent '
             '"$http_referer" "$http_user_agent" '
             '$request_time $upstream_response_time $pipe';

request_time 表明,Nginx处理该请求所需花费的时间。
upstream_response_time 表明上游服务器的处理时间。
pipe 表示是否使用了http pipe

使用该条日志格式:

access_log /var/log/nginx/yourdomain.com.access.log timed_combined;

66.249.71.173 - - [08/Nov/2010:14:16:18 -0600] "GET /blog/2010/apr/30/installing-geodjango-dependencies-homebrew/ HTTP/1.1" 200 6569 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 0.640 0.640 .

0.640 表示,Nginx使用了0.640s的时间去相应客户端,其中上游服务器占用了0.640s,Nginx本身没有花费任何时间,并且没有使用pipeline


文章题目:Nginx使用日志输出上游服务器和自身的处理时间
网站网址:http://hbruida.cn/article/iedjoe.html