具有多个域+ ssl支持的清漆

时间:2013-04-13 19:29:32

标签: ssl nginx varnish

我目前参与了使用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终结器实现的任何标准方法?

注意:为什么我要尝试实现此目的:为安全性和使用现有硬件设备创建多个层。

已经到位:

  1. 所有服务器都有(使用lightty的ssl的多个接口)。
  2. 负载均衡器 - >硬件 - >这将平衡那些Web服务器之间的负载。
  3. 任何分享那里观点的专家都会很棒。

1 个答案:

答案 0 :(得分:0)

我决定使用nginx作为ssl终结符并实现我的问题答案,如下所示。如果有人发现它有用,我决定更新它。

从我的上述查询:

如何将varnish配置为dns入口使用多个域的ssl终止点?

=>它是如何工作的我们需要有一个套接字监听https / nginx / pound /或任何其他可以读取ssl的东西。  (我以前不太相信是使用这一点作为ssl终结者,但我认为我很好,因为我已经计划将其作为内部区域。

=>有可能以某种方式配置varnish接受所有连接并直接绕过ssl到webserver吗? (所以我不必担心ssl支持的多个接口)

可以使用多个接口(如果您有多个域)实现此目的。 或者,如果您正在处理子域,则使用相同的界面。 或者,您可以为所有ssl所需页面创建一个安全页面(取决于权衡)

=>或者用443终结器实现的任何标准方法? 我决定使用nginx来使用nginx提供的那些功能(安全层的内容)。