如何同时配置 Varnish、Nginx 虚拟主机和 Letsencrypt SSL

如何同时配置 Varnish、Nginx 虚拟主机和 Letsencrypt SSL

我需要一些关于在虚拟主机上配置 Varnish Cache、Nginx 和 SSL 的帮助。我能够在服务器 IP(默认虚拟主机)上配置 Varnish 和 Nginx。当我访问网站时,http我能够看到 curl -I http://example.com 在此处输入图片描述

但是当使用带有 SSL 的相同域名时( curl -I https://example.xom )我得到了这个

在此处输入图片描述

有人可以指导我在 Varnish Cache 上配置 SSL 的步骤吗?

答案1

如果您已经在使用 Nginx 来处理 TLS 流量,那么您不妨在 Nginx 中配置一个 TLS 虚拟主机,将流量代理到 Varnish。

以下是 Nginx 中的一个示例配置:

server {

    listen 443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate /path/to/cert/cert.pem;
    ssl_certificate_key /path/to/key/key.pem;
    ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers               'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_session_cache    shared:SSL:10m;
    ssl_session_timeout 24h;
    keepalive_timeout 300s;

    location / {
        proxy_pass http://127.0.0.1;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Ssl-Offloaded "1";
        proxy_set_header      X-Forwarded-Proto https;
        proxy_set_header      X-Forwarded-Port 443;
        proxy_set_header X-Forwarded-Proto $scheme;

    }

}

您可以将其与 Nginx 的现有 TLS 配置合并。只需确保您通过代理将内容发送到 Varnish,proxy_pass而不是仅在本地提供内容。

在这种情况下,您将使用 Nginx 作为 TLS 代理,而不是 Web 服务器。

相关内容