我有一台 VPS 服务于 2 个 Wordpress 安装。使用 Varnish > Nginx > PHP-FPM 目前我在 nginx 的 conf.d 文件夹中有以下内容:
域名1.com.conf 域名2.com.conf
一个域的配置示例如下:
server {
server_name domain1.com www.domain1.com *.domain1.com;
listen 127.0.0.1:81;
expires max;
root /home/domain1.com;
index index.php;
Varnish 的默认 VCL 文件:
backend default {
.host = "127.0.0.1";
.port = "81";
.connect_timeout = 600s;
.first_byte_timeout = 600s;
.between_bytes_timeout = 600s;
}
所有域都有相同的监听值,127.0.0.1:81。
我如何让 Varnish 真正提供正确域的缓存版本?
答案1
要按域名分割缓存,请使用以下命令更改 VCL 配置:将其添加到 vcl_hash 子例程中:
适用于 Varnish 2.1.x
if (req.http.host) {
set req.hash += req.http.host;
}
else {
set req.hash += server.ip;
}
适用于 Varnish 3.x
if (req.http.host) {
hash_data(req.http.host);
}
else {
hash_data(server.ip);
}