log_not_found off 仅抑制 error.log 中“文件未找到”警告(如 favicon.ico),不改变 404 响应或 access_log 记录;推荐在 location = /favicon.ico 中精准配置并搭配 try_files =204 使用。
在 Nginx 中,
可以有效抑制因请求不存在资源(如
)而产生的 404 日志条目,从而避免错误日志快速膨胀。它不阻止 404 响应本身,只控制是否记录该事件到
或
(取决于上下文),是运维中轻量、安全的日志优化手段。
作用范围与生效位置
该指令仅对
中的“文件未找到”类警告(如
)起作用,需放在以下任一作用域中才生效:
http 块
:全局关闭所有 location 的此类日志
server 块
:仅对该虚拟主机生效
location 块
:最精准,推荐用于专门处理
推荐配置方式(精准控制)
比起全局关闭,更稳妥的做法是在匹配
的 location 中单独设置,既减少日志,又不影响其他 404 问题的排查:
说明:
-
是精确匹配,效率高;
-
表示若文件不存在,直接返回 204(无内容),比 404 更安静;
- 即使不提供真实图标,也能消除大量重复日志和客户端重试。
注意事项与常见误区
不影响 access_log 记录(即访问行为仍会写入 access 日志),也不改变 HTTP 状态码——浏览器依然收到 404 或你指定的状态码(如 204)。需注意:
它不能替代真正提供
;长期缺失可能影响书签显示或 SEO 微信号;
不要在 root 目录或静态资源 location 中滥用,否则会隐藏真实的文件路径错误;
若已启用
,还需确认是否真有必要关 error 日志——多数情况下,只关 favicon 的 not_found 就够了。
验证是否生效
修改配置后重载 Nginx(
),然后手动请求
:
检查
是否不再新增对应路径的 “No such file” 提示;
用
确认返回状态码符合预期(如 204 或 404);
观察日志增长速率是否明显下降,尤其是高流量站点效果显著。
log_not_found offfavicon.icoerror.logaccess.logerror_logopen() "/path/favicon.ico" failed (2: No such file or directory)/favicon.icofavicon.icolocation = /favicon.ico {
log_not_found off;
# 可选:返回空响应或默认图标,避免浏览器反复重试
try_files /favicon.ico =204;
}location = /favicon.icotry_files /favicon.ico =204log_not_foundfavicon.icoaccess_log offnginx -s reload/favicon.icoerror.logcurl -I http://your-site/favicon.ico