Nginx 自编译安装 格式化时间

1. 安装gcc(centos 7之后一般已自带,可以在第6步失败后再安装)

yum install gcc gcc-c++

2. 安装pcre

yum install -y pcre pcre-devel

3. 安装zlib

yum install -y zlib zlib-devel

4. 安装openssl

yum install -y openssl openssl-devel

5. 下载并解压Nginx(之后进入Nginx目录)

如果需要nginx需要转发能力

PCRE 作用是让 Nginx 支持 Rewrite 功能。

扫描二维码关注公众号,回复: 8749781 查看本文章
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
 tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
[root@bogon pcre-8.35]# ./configure
[root@bogon pcre-8.35]# make && make install

nginx编译时 追加参数 

--with-pcre=/usr/local/src/pcre-8.35

安装nginx

wget http://nginx.org/download/nginx-1.6.2.tar.gz

6. 编译Nginx(加载常用模块如ssl)

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module

7. 安装Nginx

make && make install

8. 启动

/usr/local/nginx/sbin/nginx

9. 停止

/usr/local/nginx/sbin/nginx -s stop(reload表示重启)

10. 浏览器访问Nginx所在机器IP,验证Nginx启动成功

http://yourhost/

注:Nginx配置文件位置

安装完成之后 开始修改源码

一、修改原因

  因为要获取nginx访问信息,作为开发的数据使用,但是nginx的access.log文件中的默认的时间格式是这样的:

  [02/Nov/2017:20:48:25 +0800]

  而要求的格式类似如下:

  [2017-11-02 20:52:06]

回到顶部

二、修改方法

  方法都几种,但是修改源码的方法看上去麻烦,做起来也简单,我这边修改了源码(把原来的删了,复制新的),重新编译

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

1

2

3

4

5

6

7

8

9

10

11

12

1) { 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行

1

2

3

4

5

6

7

8

9

10

(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);

  3.备份一下配置文件(小心一些好)

  4.重新编译,参数还是用原来的吧

       5. make && make install 之后重启nginx就行了

注意安装nginx 不要随便指定安装目录 否则可能出现 

发布了112 篇原创文章 · 获赞 266 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/fujiakai/article/details/91955602