最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx location 配置中如何配置以排除特定类型文件的访问日志
时间:2026-09-01 20:28:47 编辑:袖梨 来源:一聚教程网
Nginx中排除特定文件访问日志的唯一有效方式是在server块内、location /之前用正则或精确匹配并配置access_log off;如location ~*.(js|css|png|...)$ { access_log off; }和location = /healthz { access_log off; },禁用if块或子location内设置,需nginx -t && nginx -s reload验证。
在 Nginx 的 location 配置中排除特定类型文件的访问日志,核心就一条:对匹配到的文件后缀,直接写 access_log off;。这不是“过滤”,而是彻底不写入——这是唯一真正生效的方式。
用正则匹配后缀并关闭日志
这是最常用也最稳妥的做法。把以下配置放在 server 块内、通用 location / 之前(顺序很重要):
location ~* .(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|pdf|zip|webp|mp4|avi|mkv)$ { access_log off; }-
~*表示大小写不敏感,能同时匹配.JS和.js - 括号里按需增删后缀,比如加
|xml就能排除 XML 文件 - 必须放早——如果它被写在
location /后面,会被父级日志继承覆盖
单独处理无后缀但高频的路径
像健康检查或机器人协议这类请求,没有扩展名,但同样没必要记日志:
location = /healthz { access_log off; return 200 "ok"; }location = /robots.txt { access_log off; log_not_found off; return 200 "User-agent: *nDisallow: /"; }location = /favicon.ico { access_log off; log_not_found off; try_files /favicon.ico =204; }- 用
=精确匹配,性能高、无歧义,避免被其他正则规则误捕获
避开常见陷阱
很多配置看似合理,实际无效。关键点就几个:
- 别在
if块里写access_log off—— Nginx 不支持 - 别指望靠
log_format或条件判断“筛掉”日志 ——access_log off是唯一硬开关 - 别把规则塞进
location /里面当子块 —— 子 location 无法取消父级已启用的日志 - 改完务必执行
nginx -t && nginx -s reload,否则不生效
验证是否生效
最直接的办法:
- 用
curl请求一个被排除的资源,比如curl https://yoursite/logo.png - 立刻查看
/var/log/nginx/access.log末尾有没有新增记录 - 再请求一个普通页面(如
/),确认日志仍在正常写入
相关文章
- MySQL面试:update卡住了,是锁等待还是死锁? 09-02
- 猎风传说孵蛋活动分享 猎风传说孵蛋活动是什么 09-02
- 猎风传说新手开荒攻略 猎风传说新手攻略 09-02
- 密室逃脱市场SWOT分析-主要信息和内容重点 09-02
- TPLink TLWR880N 51 无线路由器IP带宽控制功能分配带宽 09-02
- 如何进行蛋糕店SWOT分析-价格信息和位置线索 09-02