日期:2014-05-16  浏览次数:20455 次

修改nginx的日期格式
开发有要求需要修改nginx日志中的时间格式
2010-08-23 17:27:11
Nginx的默认日志时间格式为
23/Aug/2010:17:26:44 +0800

1.修改src/http/modules/ngx_http_log_module.c

第一处
修改前:
 { ngx_string("time_local"), sizeof("28/Sep/1970:12:00:00 +0600") - 1,
                          ngx_http_log_time },
修改后:
{ ngx_string("time_local"), sizeof("1970-09-28 12:00:00 +0600") - 1,
                          ngx_http_log_time },

第二处
修改前:
  return ngx_cpymem(buf, ngx_cached_http_log_time.data,
                      ngx_cached_http_log_time.len);
修改后:
  return ngx_cpymem(buf, ngx_cached_err_log_time.data,
                      ngx_cached_err_log_time.len);


2、修改 src/core/ngx_times.c 140行

修改前
 (void) ngx_sprintf(p1, "%4d/%02d/%02d %02d:%02d:%02d",
                       tm.ngx_tm_year, tm.ngx_tm_mon,
                       tm.ngx_tm_mday, tm.ngx_tm_hour,
                       tm.ngx_tm_min, tm.ngx_tm_sec);

修改后
    (void) ngx_sprintf(p1, "%4d-%02d-%02d %02d:%02d:%02d",
                       tm.ngx_tm_year, tm.ngx_tm_mon,
                       tm.ngx_tm_mday, tm.ngx_tm_hour,
                       tm.ngx_tm_min, tm.ngx_tm_sec);

效果对比:
修改前:
127.0.0.1 - - [05/Sep/2012:13:28:46 +080] "GET / HTTP/1.1" 200 151 "-" "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.0.5) Gecko/2008120908 Red Hat/3.0.5-1.el5_2 Firefox/3.0.5"
修改后

127.0.0.1 - - [2012-09-05 13:43:32] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.0.5) Gecko/2008120908 Red Hat/3.0.5-1.el5_2 Firefox/3.0.5"


同时附带一下nginx的平滑升级

好了,现在我们开始将Nginx平滑升级到稳定版1.0.0。
1、下载最新的Nginx源码安装包
wget http://nginx.org/download/nginx-1.0.0.tar.gz

2、配置并编译Nginx(不要执行make install步骤)
# tar zxvf nginx-1.0.0.tar.gz