凌乱的日志
日常使用的 Nginx 大都既做静态资源服务器,也做反向代理服务器,尤其有些时候考虑到跨域问题,会对静态资源和后端接口使用同一个监听端口,如果不做一下过滤处理,会在 access_log 中看到大量的例如 js、css、jpg 等静态资源的请求,比较影响查看后端接口调用的日志
本来没有很在意这个东西,不过在浏览一篇关于 Nginx 优化的文章时,发现了一种用 map 定义一个是否写日志的参数的方法,结合最近使用 map 做动态的跨域配置,索性也是学习及记录一下 map 的另一个使用场景
使用 map 过滤访问静态资源文件的日志
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
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"
另一种动静分离日志写法
?
1
2
3
4 |
location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf)$ {
#access_log off; #不输出访问静态资源的日志
access_log logs /static_resources .log;
} |
到此这篇关于Nginx 过滤静态资源文件的访问日志的实现的文章就介绍到这了,更多相关Nginx 访问日志内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!
原文链接:https://priesttomb.github.io/%E6%8A%80%E6%9C%AF/2020/10/27/not-write-static-sources-logs-in-nginx/
相关文章
猜你喜欢
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-29 74
-
2025-05-29 30
-
2025-05-27 53
-
2025-05-29 83
-
2025-05-25 17
热门评论