Useragent

來自單個使用者每隔幾分鐘對 /favicon.ico 的過多請求

  • January 24, 2021

在過去的幾個月裡,我的網路伺服器的很大一部分請求來自請求 /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。現在主要問題是弄清楚如何解決您的問題:

  • 聯繫 Widget 的作者,請他通過增加請求之間的時間來優化它
  • 考慮像 Redis 這樣的記憶體服務,它將文件保存在記憶體中

如果您的網站託管在 Linux 上 - 該文件應該已經被記憶體,那麼您就不需要 Redis。但是,您可以嘗試添加“過期”指令

引用自:https://serverfault.com/questions/1051008