以下是我们在第三方数据中心的当前生产配置:
• 共享负载均衡器后面有 2 个 LINUX/CentOS tomcat Web 服务器 • DNS 条目指向负载均衡器 • Web 应用程序使用 Java 6、Spring 3、Hibernate 4 编写。
数据中心技术人员告诉我们,为了使用负载平衡器将端口 80 转发到 8080,并将 443 转发到 8443(这样我们的 URL 中就没有端口号),我们必须在负载平衡器和 tomcat Web 服务器上都安装 SSL 证书。但这会影响我们的性能/吞吐量,并限制我们同时连接到 Web 应用程序的 SSL 连接数(即用户数)。
拥有两个 SSL 证书是否有意义,或者是否可以简化,只需在负载平衡器或 tomcat Web 服务器上安装 SSL 证书,而不是同时在两者上安装。哪一个更可取?
提前致谢 - 马克
答案1
我怀疑这种限制是由于他们的产品或他们对产品的管理存在局限性。我认为原则上没有任何技术原因需要这样做。
不过,我建议最好在每个成员服务器上都使用一个 Web 服务器(例如 Apache、nginx)作为 Java 容器的前端。这样您就可以让 Web 服务器在提供静态内容和缓存等方面做更多的工作。
我希望对于可以在负载均衡器上终止 SSL 的部署(即,不是您真正希望通过 SSL 连接到服务器的高安全性站点),负载均衡器需要有一种注入(和清理)HTTP 标头的方法,以便在请求通过 https 传入时通知成员服务器等。但您确实需要小心,人们不能直接访问成员服务器(他们可以注入自己的标头)。
对于大多数企业级部署,终止每个成员服务器上的 SSL 是正常现象。但我没有扩展此内容的经验。