Nginx 记录请求分发日志

转载自:http://greatwqs.iteye.com/blog/1885420

在nginx接收到请求之后, 需把请求分发到后端WEB服务集群.

在这里需要记录分发日志, 来分析后端每台WEB服务器处理的请求数目.

http {  
log_format  main    
  ' $remote_user [$time_local]  $http_x_Forwarded_for $remote_addr  $request '  
 '$http_x_forwarded_for '                       
 '$upstream_addr '                        
 'ups_resp_time: $upstream_response_time '                        
 'request_time: $request_time';  
  
access_log  logs/access.log  main;  
  
server{}  
...  
}  

在日志显示的信息为:

- [31/May/2013:00:01:03 -0700]  - xxx.ip.addr.xxx  GET /portal/index.html HTTP/1.1 - 192.168.100.15:8188 ups_resp_time: 0.010 request_time: 0.011  
- [31/May/2013:00:01:03 -0700]  - xxx.ip.addr.xxx  GET /portal/index.html HTTP/1.1 - 192.168.100.16:8188 ups_resp_time: 0.006 request_time: 0.006  
- [31/May/2013:00:01:03 -0700]  - xxx.ip.addr.xxx  GET /portal/index.html HTTP/1.1 - 192.168.100.15:8188 ups_resp_time: 0.013 request_time: 0.013  
- [31/May/2013:00:01:03 -0700]  - xxx.ip.addr.xxx  GET /portal/index.html HTTP/1.1 - 192.168.100.17:8188 ups_resp_time: 0.003 request_time: 0.003  
- [31/May/2013:00:01:03 -0700]  - xxx.ip.addr.xxx  GET /portal/index.html HTTP/1.1 - 192.168.100.18:8188 ups_resp_time: 0.004 request_time: 0.004  
- [31/May/2013:00:01:03 -0700]  - xxx.ip.addr.xxx  GET /portal/index.html HTTP/1.1 - 192.168.100.15:8188 ups_resp_time: 0.012 request_time: 0.013  
- [31/May/2013:00:01:03 -0700]  - xxx.ip.addr.xxx  GET /portal/index.html HTTP/1.1 - 192.168.100.18:8188 ups_resp_time: 0.005 request_time: 0.005  
- [31/May/2013:00:01:03 -0700]  - xxx.ip.addr.xxx  GET /portal/index.html HTTP/1.1 - 192.168.100.16:8188 ups_resp_time: 0.011 request_time: 0.011  
- [31/May/2013:00:01:03 -0700]  - xxx.ip.addr.xxx  GET /portal/index.html HTTP/1.1 - 192.168.100.15:8188 ups_resp_time: 0.447 request_time: 0.759  

全部配置文件nginx.conf.

# greatwqs@163.com Install on 2012-08-11 linux  
# user  devwqs;  
  
# 2 intel(R) xeon(R) CPU  
worker_processes  4;  
  
worker_cpu_affinity 00000001 00000010 00000100 00001000;  
  
# error_log  logs/error.log;  
# error_log  logs/error.log  notice;  
error_log   logs/error.log  error;  
  
pid        logs/nginx.pid;  
  
# allow openning file nums  
worker_rlimit_nofile 25600;  
  
events {  
    # linux 2.6 upper version.  
    use epoll;  
    worker_connections  51200;  
}  
  
http {  
    include       mime.types;  
    default_type  application/octet-stream;  
  
    log_format  main  '$remote_user [$time_local]  $http_x_Forwarded_for $remote_addr  $request'  
                      '$http_x_forwarded_for'  
                      '$upstream_addr'  
                      'ups_resp_time: $upstream_response_time'  
                      'request_time: $request_time';  
  
    access_log  logs/access.log  main;  
  
    sendfile                     on;  
    # tcp_nopush                 on;  
                                   
    keepalive_requests           200;  
    keepalive_timeout            20;  
    gzip  on;                      
    client_body_buffer_size      128k;  
    client_body_timeout          60s;  
    client_max_body_size         10m;  
    # proxy_buffer_size          8k;  
    # proxy_busy_buffers_size    64k;  
    proxy_temp_file_write_size   64k;  
  
    # portal-cluster  
    upstream portal-cluster {  
        # http://192.168.100.15:8188/portal/  
        server 192.168.100.15:8188 weight=5 max_fails=5 fail_timeout=30s;  
  
        # http://192.168.100.16:8188/portal/  
        server 192.168.100.16:8188 weight=5 max_fails=5 fail_timeout=30s;  
          
        # http://192.168.100.17:8188/portal/  
        server 192.168.100.17:8188 weight=5 max_fails=5 fail_timeout=30s;  
          
        # http://192.168.100.18:8188/portal/  
        server 192.168.100.18:8188 weight=5 max_fails=5 fail_timeout=30s;  
    }  
  
    # manage-cluster  
    upstream manage-cluster {  
        # http://192.168.100.25:8189/manage/  
        server 192.168.100.25:8189 weight=4 max_fails=5 fail_timeout=30s;  
  
        # http://192.168.100.26:8189/manage/  
        server 192.168.100.26:8189 weight=6 max_fails=5 fail_timeout=30s;  
    }  
  
    # External Internet.  
    server {  
        listen       80;  
        server_name  www.huaxixiang.com;  
        access_log   logs/host.access.log  main;  
  
        location /portal/ {  
            # root   html;  
            # index  index.html index.htm;  
            # nginx http header send to tomcat app.  
            # proxy_set_header Host  $host;  
            # proxy_set_header X-Forwarded-For  $remote_addr;  
            proxy_set_header Host $host;  
            proxy_set_header X-Real-Ip $remote_addr;  
            proxy_set_header X-Forwarded-For $remote_addr;  
  
            proxy_pass http://portal-cluster;  
        }  
  
        # nginx status  
        location /nginx_status {  
            # copied from http://blog.kovyrin.net/2006/04/29/monitoring-nginx-with-rrdtool/  
            stub_status  on;  
            access_log   off;  
            allow        192.168.100.100;  
            #deny all;  
        }  
  
        location / {  
            root   html;  
            index  index.html index.htm;  
        }  
        error_page  404              /404.html;  
  
        # redirect server error pages to the static page /50x.html  
        error_page   500 502 503 504  /50x.html;  
        location = /50x.html {  
            root   html;  
        }  
    }  
  
    # External Internet.  
    server {  
        listen       80;  
        server_name  manage.huaxixiang.com;  
  
        access_log  logs/host.access.log  main;  
  
        location /manage/ {  
            proxy_pass http://manage-cluster;  
        }  
  
        location / {  
            root   html;  
            index  index.html index.htm;  
        }  
  
        error_page  404              /404.html;  
  
        # redirect server error pages to the static page /50x.html  
        error_page   500 502 503 504  /50x.html;  
        location = /50x.html {  
            root   html;  
        }  
    }  
}  

注意:使用 $upstream_addr 可以记录实际分发到的后台服务的ip+端口,使用 $upstream_response_time 可以记录响应时间。

nginx status查看:

Active connections: 1 
server accepts handled requests
 3 3 5 
Reading: 0 Writing: 1 Waiting: 0 

本文转自:Nginx 记录请求分发日志

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值