log_not_found off 可精准屏蔽 favicon.ico 缺失触发的 error_log 中“文件未找到”警告,避免日志刷屏;它不改变 404 响应或 access_log 记录,推荐在 location = /favicon.ico 中配置并搭配 try_files /favicon.ico =204 使用。

在 Nginx 中,log_not_found off 可以有效屏蔽因请求 /favicon.ico(或其它不存在资源)而产生的 404 日志条目,避免日志被大量无关记录刷屏。
为什么 favicon 会频繁触发 404 日志?
浏览器默认会在每次访问页面时自动发起对 /favicon.ico 的请求。如果网站未提供该文件,Nginx 就会返回 404,并将该请求记录到 error_log(尤其是开启 log_not_found on 时)。这会导致日志中出现大量重复的“open() \"/path/favicon.ico\" failed”类报错,干扰真实错误排查。
如何正确关闭 favicon 缺失日志
只需在对应作用域(http、server 或 location)中添加:
log_not_found off;
推荐放在 server 块内,影响最小且针对性强:
server {<br> listen 80;<br> server_name example.com;<br> log_not_found off; # ← 关键配置<br> location / {<br> root /var/www/html;<br> index index.html;<br> }<br>}
- 该指令仅控制“文件未找到”类错误是否记入
error_log,不影响响应状态码(仍返回 404) - 若已存在
/favicon.ico,该配置无实际影响;若不存在,则不再报错日志 - 不建议全局在
http块中关闭,否则可能掩盖其他真正需要关注的 404 问题
更彻底的优化建议(可选)
除了关闭日志,还可主动处理 favicon 请求,进一步减少无效请求:
- 在网站根目录放置真实的
favicon.ico文件 - 用空响应快速终结请求:
location = /favicon.ico {<br> log_not_found off;<br> return 204;<br>} - 或直接返回一个极小的图标(如 1×1 像素透明 ICO),兼顾兼容性与性能
验证是否生效
修改配置后重载 Nginx(nginx -s reload),然后访问任意页面,再检查 error 日志:
- 刷新页面后,
tail -f /var/log/nginx/error.log不再出现favicon.ico not found类记录 - 注意:access log 中的 404 记录不受此指令影响(那是
log_format和access_log控制的)










