阿帕奇和清漆 http/https

Apache and Varnish http/https

我在 debian 服务器上使用 apache2 和 varnish,但我有 2 个网站,一个使用端口 80,另一个使用 443,但我不知道将其与 varnish 一起使用

我如何将端口 80 和 443 与 varnish 一起使用? 谢谢你

/etc/default/varnish

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

/etc/varnish/default.vcl

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

和apache2

NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>

Varnish 的 "recommended" TLS 终止伴侣将是 Hitch,它来自相同的开发人员。它作为一个独立的进程运行,并使用 HAProxy PROXY 协议与 Varnish 进行通信。这需要 Varnish-wise 在另一个端口上监听 PROXY 协议。

根据 Varnish 4.1 documentation,您可以同时监听 6081(或 80,视情况而定)以及内部端口,例如 6086

varnishd -f /etc/varnish/default.vcl -a :6081 -a 127.0.0.1:6086,PROXY

您可以使用 std 模块来检测原始请求是否通过 SSL 执行以下操作:

sub vcl_recv {
    if (std.port(server.ip) == 443) {
        set req.http.X-Proto = "https";
    }
}