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

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

编辑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');
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值