分布式系统架构:技术栈详解与快速进阶
上QQ阅读APP看书,第一时间看更新

4.4 Nginx代理&负载均衡

Nginx处理HTTP请求的流程如图4-4所示。

075-1

图4-4 Nginx处理HTTP请求流程图

注意

通常一个连接建立好后,会读取一行数据,并分析出请求行中包含的method、uri、http_version等信息。然后再一行一行处理请求头,并根据请求method与请求头的信息来决定是否有请求体以及请求体的长度,然后再去读取请求体。得到请求后,处理该请求并输出相应的数据,再生成响应行、响应头以及响应体。在将响应发送给客户端之后,一个完整的请求就处理完了。

负载均衡的作用如下:

1)转发功能:按照一定的算法(默认为轮询),将客户端请求转发到不同应用服务器上,以减轻单个服务器压力,提高系统并发量。

2)故障移除:通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器宕掉,自动将请求发送到其他应用服务器。

3)恢复添加:如检测到发生故障的应用服务器,则自动将恢复工作添加到处理用户请求队伍中。