我目前参与了使用loadbalancer作为后端的varnish实现,它将相应的流量转发到多个Web服务器。
我正在努力实现:
Public Traffic -> haproxy/DNS -> [Varnish (x2) / nginx(ssl) ] -> Loadbalancer -> Web server(x4)
我可以将Varnish,nginx配置为一个域的ssl / 443终结符。 (即如果我将dns指向varnish eth并且访问webserver服务页面)
清漆配置
backend loadbalancer { .host = "xxx.xxx.xxx.xxx"; .port = "80" }
backend loadbalancer_ssl { .host = "xxx.xxx.xxx.xxx"; .port = "443"; }
sub vcl_recv {
# Set the director to cycle between web servers.
if (server.port == 443) {
set req.backend = loadbalancer_ssl;
}
else {
set req.backend = loadbalancer;
}
}
# And other vcl rules for security and other.
Nginx配置
location / {
# Pass the request on to Varnish.
proxy_pass http://127.0.0.1;
proxy_http_version 1.1;
#SSL certificate and config
=>如何将varnish配置为dns入口点为多个域的ssl终止? =>有可能以某种方式配置清漆接受所有连接并直接绕过ssl到Web服务器吗? (这样我就不必担心ssl支持的多个接口了)
=>或者使用443终结器实现的任何标准方法?
注意:为什么我要尝试实现此目的:为安全性和使用现有硬件设备创建多个层。
已经到位:
任何分享那里观点的专家都会很棒。
答案 0 :(得分:0)
我决定使用nginx作为ssl终结符并实现我的问题答案,如下所示。如果有人发现它有用,我决定更新它。
从我的上述查询:
如何将varnish配置为dns入口使用多个域的ssl终止点?
=>它是如何工作的我们需要有一个套接字监听https / nginx / pound /或任何其他可以读取ssl的东西。 (我以前不太相信是使用这一点作为ssl终结者,但我认为我很好,因为我已经计划将其作为内部区域。
=>有可能以某种方式配置varnish接受所有连接并直接绕过ssl到webserver吗? (所以我不必担心ssl支持的多个接口)
可以使用多个接口(如果您有多个域)实现此目的。 或者,如果您正在处理子域,则使用相同的界面。 或者,您可以为所有ssl所需页面创建一个安全页面(取决于权衡)
=>或者用443终结器实现的任何标准方法? 我决定使用nginx来使用nginx提供的那些功能(安全层的内容)。