Cache

使用多個主機/子域清漆

  • January 11, 2011

我是 Varnish 的新手,我希望它已經“開箱即用”了,但在考慮在生產中使用它之前,我想澄清一下:

這是我的設置:

  1. 我有多個站點在同一台機器上執行,這些站點因子域而異(即 user1.example.com、user2.example.com 等)
  2. 每個“站點”都有一個具有相同名稱的個人資料圖片(即 user1.example.com/profile.png、user2.example.com/profile.png)

Varnish 會將它們辨識為單獨的資源並相應地記憶體它們嗎?或者我是否需要更改 VCL 中的某些內容以告訴它在查找記憶體命中時包含完整的主機 url?

它們將開箱即用地單獨記憶體。

預設程式碼vcl_hash是控制這個的:

sub vcl_hash {
   set req.hash += req.url;
   if (req.http.host) {
       set req.hash += req.http.host;
   } else {
       set req.hash += server.ip;
   }
   return (hash);
}

如您所見,如果存在,則主機名包含在雜湊中,如果不存在,則包含伺服器的 IP。

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