Nginx源码初探之upstream机制 -UPSTREAM机制介绍
upstream机制介绍 Nginx访问上游服务器主要是基于upstream机制。 upstream机制是事件驱动框架与HTTP框架的综合,它既属于HTTP框架的一部分,又可以处于基于TCP的应用层协议。为了帮助Nginx实现反向代理功能,upstream机制处理提供基本的与上游交互的功能之外,还实现里转发上游应用层协议的响应包体到下游客户端的功能。 Nginx访问上游服务器大致可以分为6个阶段:启动UPSREAM机制,连接上游服务器,向上游服务器发送请求,接收上游服务器的响应包头,处理接收都的响应包体,结束请求。 1.启动upstrean机制 启动方式很简单,创建并设置好请求体找那个的upstream成名,然后调用ngx_http_upstream_init就可以了。ngx_http_upstream_init主要就是检查下游读时间的timer_set位,如果定时器中有读事件,则将客户端连接的读事件从定时器移除。然后调用HTTP模块实现create_request方法,最后调用ngx_http_upstream_connect方法连接下游服务器。 2.与上游服务器建立连接 upstream机制与上游服务器是通过无阻塞的套接字来来建立TCP连接的。ngx_http_upstream_connect用来发起建立连接,如果这个方法没有立刻返回成功,那么需要在epoll中监控