nginx不记录指定日志和添加缓存时间

版权声明:使用中有任何问题,可以留言,能解答尽量解答。交流q群773718900 https://blog.csdn.net/liyyzz33/article/details/90041518

一.静态文件不记录日志和过期时间(添加缓存时间)

编辑web虚拟文件在***.conf的server配置项中加入
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
          expires      7d;     #过期/缓存时间为7天
          access_log off;
    }
    location ~ .*\.(js|css)$
    {
          expires      12h;   #过期、缓存时间为12小时
          access_log off;
    }

二.特殊需求不记录日志的方法(需要安装第三方模块)

以下方法适用于编译安装的nginx,如yum安装的nginx请重新编译安装,方法请见

ngx_log_if模块

ngx_log_if模块是一个nginx的第三方模块,这个模块能很好的实现日志过滤功能。

1.下载 ngx_log_if 模块

cd /root/download
wget https://github.com/cfsego/ngx_log_if/archive/master.zip
unzip master.zip

nginx添加第三方模块
1、查看ngixn版本极其编译参数

/usr/local/nginx/sbin/nginx -V

2、进入nginx源码目录

cd nginx-1..

3、以下是重新编译的代码和模块

./configure --user=www --group=www --prefix=/usr/local/nginx --without-http-cache --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --add-module=/root/download/ngx_log_if-master

make 千万别make install,否则就覆盖安装了
make完之后在objs目录下就多了个nginx,这个就是新版本的程序了
4、备份旧的nginx程序

mv /usr/sbin/nginx /usr/sbin/nginx.2019 
cp -r /etc/nginx /etc/nginx.2019

5、把新的nginx程序覆盖旧的

#先验证
objs/nginx -t 
objs/nginx -V
#成功后替换并重启
cp objs/nginx /usr/sbin/ 
systemctl stop nginx.service
systemctl start nginx.service

ngx_log_if常用例子

server {
    # 不记录204响应状态的access日志
    access_log_bypass_if ($status = 204);    
    
 # 不记录200响应状态且uri为 status.nginx 的访问日志
    access_log_bypass_if ($uri = 'status.nginx') and;
    access_log_bypass_if ($status = 200);
    # 不记录HEAD请求的日志
    access_log_bypass_if ($request = 'HEAD');
}

猜你喜欢

转载自blog.csdn.net/liyyzz33/article/details/90041518