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

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

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

本文详细介绍了Nginx过滤静态资源文件的访问日志的实现。原文根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。

杂乱日志

日常生活中使用的Nginx多是同时作为静态资源网络服务器和反向代理网络服务器。特别是在某些情况下,充分考虑跨域问题时,会对静态资源和后端开发套接字应用相同的监控端口号。如果不做过滤解决方案,js、css、jpg等静态资源的很多需求。会在access_log中找到,这对于查询后端开发套接字启用的日志是有害的。

本来我也不是很在意这个东西,但是在浏览一篇关于Nginx推广的文章时,发现了一个定义日志的一个主要参数是否是用map的方法。结合最近使用map进行动态跨域调配,简直就是学习、训练、记录map的另一个应用场景。

应用映射过滤来访问静态资源文档的日志

http{ log_formatmain'$remote_addr[$time_local]$request$status' 'uct="$upstream_connect_time"rt="$request_time"'; map$uri$not_static{ default1; ~^(.*\.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf)$)0; } server{ listen23456; server_namelocalhost; access_loglogs/test.logmainif=$not_static; } }

解释:

  • 自定义一个log_format并将其标记为main。
  • 匹配请求中的URIs。如gif,jpg,css,js等。被用作结束资源,$not_static为0,否则为1。
  • 对于访问端口号23456的需求,access_log专门用在标记为main的自定义日志文件格式中,只有$not_static为1时才记录日志。if的主要参数请参考官网文本文档。
  • 需要注意的是,在access_log中应用ifmain参数时,必须显式指定log_format,否则会得到错误:nginx:[emerg]unknownlogformat"if=$not_static"
  • 另一种静态和动态分离的日志写入

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

    至此,这篇关于完成Nginx过滤静态资源文件的访问日志的文章已经在这里详细介绍过了。有关Nginx访问日志的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待你以后的申请!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/774229.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存