我需要在服务器场或多个进程之间共享SSL终止任务。 在这个架构中,在这个ssl终止任务之前应该有一个负载平衡器。 在查找适当的软件负载平衡器之后,事实certificate,只有第4层(TCP)负载均衡器(haproxy)适用于此作业,而不是第7层(HTTP / HTTPS)作业。
我的问题是,为什么像nginx,perlbal这样的第7层负载均衡器不能仅仅通过ssl终止? 客户端IP地址应在第7层负载均衡器中可用。 他们只能转发请求,对吧?
该架构如下所示:
HTTPS balancer (L4/TCP balancer) / | \ <--- HTTPS traffic SSL server farm/processes \ | / <--- HTTP traffic HTTP balancer (L7/HTTP balancer) / | \ HTTP server farm/processes
参考: http : //1wt.eu/articles/2006_lb/index_09.html
TCP层只是通过添加标头/控制来自底层的networking数据包的路由来传输stream量。 它不知道它传输什么,因此不需要处理它的内容,也不需要处理HTTP(S)。 HTTP / HTTPS无关紧要 。
在处理应用程序层时,由于您处理应用程序,所以在内容上是深入的。 在HTTPS的情况下,您将需要SSL终止。 HTTP / HTTPS确实很重要 。
因此,如果要在应用程序级别进行负载平衡,则需要在相同的负载均衡器上执行SSL终止。 nginx允许你这样做。
如果你想分离这些任务,你将需要一个networking/路由级负载均衡器。