Php 防止具有N个子域的Varnish双缓存/仅为Varnish规范化主机

Php 防止具有N个子域的Varnish双缓存/仅为Varnish规范化主机,php,regex,apache,varnish,varnish-vcl,Php,Regex,Apache,Varnish,Varnish Vcl,我有一堆子域,看起来像: http://u-c2f86nr3pa.example.org/?s=1 http://u-v1cfu8dsta.example.org/?s=1 它们的内容不同,但静态文件CSS/JS/Favicon是相同的。我想为它们规范化主机名,但我不想为PHP脚本规范化主机名,因为它是基于子域工作的 有没有一种方法可以让varnish知道这些域是通用的,静态域应该为它们缓存一次?您可以在varnish配置的vcl\u recv部分有条件地重写主机头。您需要一种方法来识别哪些U

我有一堆子域,看起来像:

http://u-c2f86nr3pa.example.org/?s=1
http://u-v1cfu8dsta.example.org/?s=1
它们的内容不同,但静态文件CSS/JS/Favicon是相同的。我想为它们规范化主机名,但我不想为PHP脚本规范化主机名,因为它是基于子域工作的


有没有一种方法可以让varnish知道这些域是通用的,静态域应该为它们缓存一次?

您可以在varnish配置的vcl\u recv部分有条件地重写主机头。您需要一种方法来识别哪些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服务器将看到重写的主机,因此请确保将其规范化为它可以识别的名称。

您可以在Varnish配置的vcl\u recv部分有条件地重写主机头。您需要一种方法来识别哪些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服务器将看到重写的主机,因此请确保将其规范化为它可以识别的名称。

您可以在Varnish配置的vcl\u recv部分有条件地重写主机头。您需要一种方法来识别哪些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服务器将看到重写的主机,因此请确保将其规范化为它可以识别的名称。

您可以在Varnish配置的vcl\u recv部分有条件地重写主机头。您需要一种方法来识别哪些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服务器将看到重写的主机,因此请确保将其规范化为可识别的名称