1.2 两层负载
大众点评对网络流量采用两层负载。那么,这两层负载是如何分工的呢?
我们结合一个具体的请求来分析这个问题:
假设有一条请求,访问domain_name/location_name:
首先,浏览器寻找该域名domain_name对应的公网IP。电脑接入的运营商不同,对应的公网IP就不同。
由于该IP是F5的对外IP,请求发送到F5上。
F5将此请求反向代理到一台Nginx服务器。
该Nginx服务器根据网址路径"/location_name"找到对应的负载规则,转发到规则中配置的业务服务器。
业务服务器响应该请求。
F5只做四层负载,不同的公网IP接受的流量,转发到不同的Nginx集群;
Nginx集群做七层负载,根据URL的路径、cookie等,转发到真正响应服务的业务服务器。
域名、IP、Nginx集群、业务集群的对应关系如下:
一个域名或一个泛域名 对应 一个公网IP
多个公网IP 对应 一个Nginx集群
一个Nginx集群 对应 多个业务