nginx-distribute
2016-02-17 17:51:57 1 举报
nginx-distribute是一个用于在多台服务器上分发和负载均衡Nginx流量的工具。它通过将请求分发到不同的服务器,确保了应用程序的高可用性和性能。nginx-distribute支持多种负载均衡算法,如轮询、最少连接和IP哈希等,以满足不同场景的需求。此外,它还提供了实时监控和故障转移功能,以确保服务的稳定运行。通过使用nginx-distribute,您可以轻松地扩展您的应用程序,提高其处理能力,同时降低单点故障的风险。总之,nginx-distribute是一个强大且灵活的Nginx负载均衡解决方案,适用于各种规模的企业和个人项目。
作者其他创作
大纲/内容
worker
按照http协议格式,封装好响应并返回给client
worker通过protobuf将输入流转为结构化数据,经过处理后再将输出结构化数据转为字节流(放在connection中,并设置处理状态值),通过pipe(epoll svr的pipe)通知epoll server
Nginx
http request中header带有uri_path, body带有后台需要的结构化数据的protobuf的字节流
task queue
(/uri_path1)epollserver
client
4字节状态值,4字节返回消息大小,返回消息
4字节状态值,4字节的包体大小,后面紧跟包体
status(4Byte); size(4Byte); body
process header根据epoll svr返回值,决定是将结果直接返回到client,还是query next
接收http包体
处理头部消息:根据status值做决定(a)请求成功或不可修复性错误(b)可修复性错误
将内容通过tcp连接发送至目标server
(a)请求结束
子请求
根据响应size值,接收包体
计算http包体大小,构造发送内容
(b)从配置中获取下一台server信息
(/uri_path2)epollserver
创建子请求,根据http头部 中的uri_path获取目标server
返回结果
获取子求情响应状态以及相应内容
目标server
主请求
收藏
0 条评论
下一页