在过去的几个月里,我的网络服务器的很大一部分请求来自请求 /favicon.ico 的单个用户:
# tail -n 3 access_log
XXX - - [24/Jan/2021:17:40:18 +0000] "GET /favicon.ico HTTP/1.1" 200 1845 "-" "WidgetKitExtension/3279 CFNetwork/1209 Darwin/20.2.0" "-"
XXX - - [24/Jan/2021:17:41:22 +0000] "GET /favicon.ico HTTP/1.1" 200 1845 "-" "WidgetKitExtension/3279 CFNetwork/1209 Darwin/20.2.0" "-"
XXX - - [24/Jan/2021:17:41:25 +0000] "GET /favicon.ico HTTP/1.1" 200 1845 "-" "WidgetKitExtension/3279 CFNetwork/1209 Darwin/20.2.0" "-"
(我已经审查了 IP 地址。)这是一个合法用户,偶尔会向站点发出人工请求(使用不同的用户代理和通过 http/2)。最近的人类访问是几周前,但 /favicon.ico 请求继续有增无减,平均每小时四次,但通常每隔几分钟或几秒钟,如上所示。特别是,favicon.ico 请求与对站点上任何其他资源的请求无关。我不知道它是否相关,但 favicon 是通过 https 提供的(我相信没有相应的 http 请求)并且似乎被压缩,因为 favicon.ico.gz 是 1599 字节。
在搜索过程中,我看到了关于各种奇怪的 favicon.ico 请求模式的各种其他问题,但没有任何内容可以解释 favicon.ico 请求在没有普通 Web 请求的情况下。
这些过多的请求可能是什么原因造成的?我认为这是用户代理的某种配置问题,但是我可以对服务器配置进行一些更改以说服用户代理缓存图标吗?服务器正在使用 nginx。谢谢。
显然,它是由一个“WidgetKitExtension/3279”完成的,它是一种安装在用户MacOS上的widgetkit。现在主要问题是弄清楚如何解决您的问题:
如果您的网站托管在 Linux 上 - 该文件应该已经被缓存,那么您就不需要 Redis。但是,您可以尝试添加“过期”指令。