说明:
现在大多数网站都是3层,如果网站慢下来不知道是用户连接慢还是网站服务器处理请求慢.所以需要前端负载均衡balance和后端webserver上记录每一个请求的处理时间,虽然有一点性能的损耗,但是对于DEBUG,tunning来说还是有一定作用的。
可以使用nginx log_format里的$request_time这个变量来记录请求处理的时间,
实现:
1. 日志格式
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"';
2. 实例
blance: 192.168.8.31 - - [24/Jun/2010:15:02:13 +0800] "GET /sell HTTP/1.1" 200 8624 "http://wwwqa2.yoohouse.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1" "-" "0.704" webserver: 192.168.4.236 - - [24/Jun/2010:15:02:13 +0800] "GET /sell HTTP/1.0" 200 46227 "http://wwwqa2.yoohouse.com/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 GTB7.1" "192.168.8.31" "0.702"
通过上面的例子,可以可以看到整个过程中花在blance到webserver中间的时间差很小,blance的日志记录最后总的请求完成的时间。