我已经安装了 varnish 和 nginx,并使用 lets encrypt SSL 保护了我的网站。我针对 nginx cgi 缓存测试了 varnish,我发现 varnish 在我的用例(wordpress)中速度更快一些。所以我需要一些帮助,关于如何使用 nginx 和 varnish 进行 SSL 终止以及如何将 http 转发到 https,因为我的网站仅支持 https。我正在运行 ubuntu 18.04
答案1
在 /etc/varnish/default.vcl 中添加以下行
sub vcl_recv {
if ( (req.http.host ~ "^(?i)www.yourdomain.com" || req.http.host ~ "^(?i)www.yourdomain.com") && req.http.X-Forwarded-Proto !~ "(?i)https")
{
return (synth(750, ""));
}
}
sub vcl_synth {
if (resp.status == 750) {
set resp.status = 301;
set resp.http.Location = "https://www.yourdomain.com" + req.url;
return(deliver);
}
}