具有清漆和多个NGINX Web服务器的堆栈的SSL证书实现

我目前的堆栈有Varnish – > NGINX(2台服务器)运行Drupal – > MySql。

所有静态内容都通过HTTP进行caching并通过Varnish进行服务。 但是,当用户注册并且想要购买计划时,与支付网关的连接是通过HTTPS进行的。 目前该证书是在其中一台NGINX服务器上实施的。 域的Alogging指向这个NGINX服务器。

我打算把A域的logging指向Varnish服务器,这样我就可以从Varnish的caching中获益,而不是加载NGINX服务器。 任何有意购买的访客都将被转到NGINX。 我有两个疑问

  1. 我应该为第二个NGINX服务器生成另一个证书,还是只在第一个服务器上实现第二个证书?
  2. 这个设置会造成什么问题吗? 我得到这种感觉,因为包含证书的服务器不再有映射到它的域。

编辑:我打算有清漆端口443监听,并通过所有的HTTPS请求到NGINX服务器

Varnish不支持SSL封装( https )stream量,因此您必须 在其前端使用SSL终结符。

可以使用几个不同的应用程序。 它们都会终止SSL并将纯httpstream量转发到您的后端( Varnish ):

  • 一个支持SSL的(标准)http web服务器,比如Apache或者nginx
  • 一个特定目的的SSL终结者(称为wrapper ),如螺柱stunnel
  • 一个特定于目的的反向代理/负载均衡器,支持像英镑这样的SSL

专门为终止SSL和/或代理请求而开发的应用程序是优选的。
作为一个networking服务器, nginxApache更合适,因为它通常被认为是静态内容或代理的更快。
nginx也可以很容易地编译一个具有最小开销的特定版本,它只包含所有必要的模块( http_corehttp_proxyhttp_ssl模块)。

当所有SSL在终止符处终止时,后端nginx实例根本不需要知道任何有关SSL的信息(除了在所有链接中返回正确的主机名和scheme外)。
因此,它不需要证书和私钥。