如何使用 varnish 和 nginx 作为 SSL 终止器以及使用 http 到 https 转发

如何使用 varnish 和 nginx 作为 SSL 终止器以及使用 http 到 https 转发

我已经安装了 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);
  }
  }

相关内容