favicon.ico 文件是浏览器收藏网址时显示的图标,当第一次访问页面时,浏览器会自动发起请求获取页面的favicon.ico文件。当/favicon.ico文件不存在时,服务器会记录404日志。
1、favicon.ico访问配置
1.1 nginx配置favicon.ico文件本地路径
如果需要获取favicon.ico,在根目录下存放一个favicon.ico文件,如何让Nginx直接去本地拿这个文件,而不转发给其他服务器呢?直接在nginx.conf中增加下面一行就可以了:
# set site favicon location /favicon.ico { root html; }
或者用try_files:
location /favicon.ico { root html; try_files $uri /; expires 10d; }
1.2 favicon.ico文件网络路径
在href这个位置写favicon.ico文件网络路径,然后添加到站点文件内,代码如下(其实多数情况不加下面代码也可以,为了兼容性更好还是加吧)
2、忽略“GET /favicon.ico 403 404”错误
favicon.ico 文件是浏览器收藏网址时显示的图标,当第一次访问页面时,浏览器会自动发起请求获取页面的favicon.ico文件。 当/favicon.ico文件不存在时,服务器会记录404日志。
127.0.0.1 - - [26/Jul/2015:22:25:07 +0800] “GET /favicon.ico HTTP/1.1” 404 168 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:36.0) Gecko/20100101 Firefox/36.0” “-” 127.0.0.1 - - [26/Jul/2015:22:25:07 +0800] “GET /favicon.ico HTTP/1.1” 404 168 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:36.0) Gecko/20100101 Firefox/36.0” “-“
当一个站点没有设置favicon.ico时,access.log会记录了大量favicon.ico 404信息。
这样有两个缺点:
1.使access.log文件变大,记录很多没有用的数据。
2.因为大部分是favicon.ico 404信息,当要查看信息时,会影响搜寻效率。
解决方法如下:
在nginx的配置中加入
location = /favicon.ico { log_not_found off; access_log off; } 以上配置说明: location = /favicon.ico 表示当访问/favicon.ico时, log_not_found off 关闭日志 access_log off 不记录在access.log
完整配置如下: server { listen 80; server_name fdipzone.com; root /Users/fdipzone/home; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log debug; location = /favicon.ico { log_not_found off; access_log off; } location / { index index.html index.htm index.php; include /usr/local/etc/nginx/conf.d/php-fpm; } }
本文作者为lishengyu,转载请注明。