Nginx源码初探之upstream机制 -UPSTREAM机制介绍

本文深入介绍了Nginx的Upstream机制,探讨了其作为事件驱动与HTTP框架结合体的角色,特别是在反向代理功能中的作用。文章详细阐述了Nginx与上游服务器交互的六个关键阶段,包括启动机制、建立连接、发送请求、接收响应头部、处理响应体及结束请求的过程。
摘要由CSDN通过智能技术生成

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中监控,当他出现可写事件时,表明连接建立成功。
3.发送请求到上游服务器
       发送请求的方法需要被epoll调度许多次ngx_http_upstream_send_request才能发送完请求,
4.接收上游服务器的响应头部
       当请求全部发送给上游服务器后,Nginx处于静默状态,ngx_http_upstream_process_header方法处理上游服务器的响应。
6.结束请求
       响应处理完后,需要结束请求,upstream机制提供了一个类似的方法ngx_http_upstream_finalize_request用于结束upstream请求。

    upstream机制属于HTTP框架,请求组装,发送往上游,解析上游响应的部分都在HTTP模块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值