簡體   English   中英

防止Varnish雙緩存與N子域/規范化主機僅用於清漆

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM