修改nginx的日期格式

來源:互聯網
上載者:User
開發有要求需要修改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

# cd nginx-1.0.0
#./configure --user=www --group=www --prefix=/web/nginx --with-http_stub_status_module --with-http_ssl_module

# make
(make編譯下就OK,不要執行make install。)

3、替換舊版本的Nginx
#mv /web/nginx/sbin/nginx /web/nginx/sbin/nginx.old
備份舊版本的nginx的二進位檔案。

# cd objs/
在objs目錄下可以看到剛剛編譯好的新版本的nginx的二進位檔案。

# cp nginx /web/nginx/sbin/
複製新版本的nginx檔案到你的nginx目錄。

# /web/nginx/sbin/nginx -t
測試新版本的nginx是否配置正常。如果提示:
the configuration file /web/nginx/conf/nginx.conf syntax is ok
configuration file /web/nginx/conf/nginx.conf test is successful
則表示配置正確。

# kill -USR2 `cat /web/nginx/nginx.pid`
讓nginx把nginx.pid改成nginx.pid.oldbin並接著啟動新的nginx。

# kill -QUIT `cat /web/nginx/nginx.pid.oldbin`
退出舊版本的nignx。

4、確認升級是否完成
整個升級過程就完成了,最後確認一下升級是否成功。
#/web/nginx/sbin/nginx -s reload
重新載入配置。

# /web/nginx/sbin/nginx -v
擷取Nginx版本資訊,如果提示:
nginx version: nginx/1.0.0
則表示升級成功。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.