Nginx 过滤静态资源文件的访问日志的实现


Posted in Servers onMarch 31, 2021

凌乱的日志

日常使用的 Nginx 大都既做静态资源服务器,也做反向代理服务器,尤其有些时候考虑到跨域问题,会对静态资源和后端接口使用同一个监听端口,如果不做一下过滤处理,会在 access_log 中看到大量的例如 js、css、jpg 等静态资源的请求,比较影响查看后端接口调用的日志

本来没有很在意这个东西,不过在浏览一篇关于 Nginx 优化的文章时,发现了一种用 map 定义一个是否写日志的参数的方法,结合最近使用 map 做动态的跨域配置,索性也是学习及记录一下 map 的另一个使用场景

使用 map 过滤访问静态资源文件的日志

http {
  log_format main '$remote_addr [$time_local] $request $status '
           'uct="$upstream_connect_time" rt="$request_time"';

  map $uri $not_static {
    default 1;
    ~^(.*\.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf)$) 0;
  }

  server {
    listen 23456;
    server_name localhost;
    access_log logs/test.log main if=$not_static;
  }
}

解释说明:

  • 自定义一个 log_format,标识为 main
  • 对请求中的 uri 做匹配,如果是以 gif、jpg、css、js 等作为结尾的资源,则 $not_static 为0,否则为1
  • 对访问23456端口的请求,access_log 指定使用标识为 main 的自定义日志格式,且仅当 $not_static 为1时才记录日志,关于 if 参数,可参考 官方文档
  • 有一点需要注意,access_log 中使用 if 参数时,必须显式指定一个 log_format,否则会报错: nginx: [emerg] unknown log format "if=$not_static"

另一种动静分离日志写法

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf)$ {
  #access_log off; #不输出访问静态资源的日志
  access_log logs/static_resources.log;
}

到此这篇关于Nginx 过滤静态资源文件的访问日志的实现的文章就介绍到这了,更多相关Nginx 访问日志内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx proxy_cache 缓存配置详解
Mar 31 Servers
Nginx配置80端口访问8080及项目名地址方法解析
Mar 31 Servers
解决使用了nginx获取IP地址都是127.0.0.1 的问题
Sep 25 Servers
nginx负载功能+nfs服务器功能解析
Feb 28 Servers
CentOS下安装Jenkins的完整步骤
Apr 07 Servers
阿里云k8s服务升级时502错误 springboot项目应用
Apr 09 Servers
Nginx 匹配方式
May 15 Servers
使用Nginx+Tomcat实现负载均衡的全过程
May 30 Servers
云服务器部署 Web 项目的实现步骤
Jun 28 Servers
nginx之queue的具体使用
Jun 28 Servers
Nginx如何配置根据路径转发详解
Jul 23 Servers
SpringBoot前端后端分离之Nginx服务器下载安装过程
Aug 14 Servers
Nginx的反向代理实例详解
nginx反向代理时如何保持长连接
Mar 31 #Servers
Nginx + consul + upsync 完成动态负载均衡的方法详解
Mar 31 #Servers
浅谈Nginx 中的两种限流方式
Mar 31 #Servers
查看nginx配置文件路径和资源文件路径的方法
Mar 31 #Servers
nginx里的rewrite跳转的实现
Mar 31 #Servers
nginx基于域名,端口,不同IP的虚拟主机设置的实现
Mar 31 #Servers
You might like
第九节 绑定 [9]
2006/10/09 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
JavaScript实现公历转农历功能示例
2017/02/13 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
python分割和拼接字符串
2013/11/01 Python
使用Python下载Bing图片(代码)
2013/11/07 Python
Python中的CSV文件使用"with"语句的方式详解
2018/10/16 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
毕业生自荐书
2014/02/02 职场文书
普通话演讲稿
2014/09/03 职场文书
2014党员民主评议个人总结
2014/09/10 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
2014年团总支工作总结
2014/11/21 职场文书
2014年科协工作总结
2014/12/09 职场文书
预备党员考察意见范文
2015/06/01 职场文书
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python