[英]prevent Varnish double cache with N subdomains/normalize host only for varnish
我有一堆子域,看起來像:
http://u-c2f86nr3pa.example.org/?s=1
http://u-v1cfu8dsta.example.org/?s=1
它們的內容不同,但靜態文件CSS / JS / Favicon是相同的。 我想為它們規范化主機名,但我不想為PHP腳本規范它,因為它基於子域工作。
有沒有辦法可以教清漆這些域是常見的,靜態應該緩存一次?
您可以有條件地重寫Varnish配置的vcl_recv部分中的Host標頭。 您需要一種方法來識別哪些URL是靜態內容。 這是一個例子; 具體的正則表達式取決於您的網站的結構。
sub vcl_recv {
# Normalize Host if URL is one of:
# /css/* /js/* /favicon*
if (req.http.Host ~ "^u-\w+\.example\.org$" &&
req.url ~ "^/(css/|js/|favicon)")
{
set req.http.Host = "u-xxxxxxxxx.example.org";
}
}
您的后端Web服務器將看到重寫的主機,因此請確保您標准化為其識別的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.