![如何同时配置 Varnish、Nginx 虚拟主机和 Letsencrypt SSL](https://linux22.com/image/1191994/%E5%A6%82%E4%BD%95%E5%90%8C%E6%97%B6%E9%85%8D%E7%BD%AE%20Varnish%E3%80%81Nginx%20%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E5%92%8C%20Letsencrypt%20SSL.png)
答案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 服务器。