美文网首页运维面试
转载:Nginx 架构及核心流程及模块介绍

转载:Nginx 架构及核心流程及模块介绍

作者: meng_philip123 | 来源:发表于2019-03-21 10:18 被阅读9次

    转载:Nginx 架构及核心流程及模块介绍

    来源:公众号分布式存储 缓存 高性能

    作者:李航

    1. Nginx简介以及特点

    Nginx简介:

    Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也是一个IMAP/POP3/SMTP服务器

    俄罗斯程序员Igor Sysoev于2002年开始

    Nginx是增长最快的Web服务器,市场份额已达33.3%

    全球使用量排名第二2011年成立商业公司

    Nginx社区分支:

    Openresty作者@agentzh(章宜春)开发的,最大特点是引入了ngx_lua模块,支持使用lua开发插件,并且集合了很多丰富的模块,以及lua库。

    Tengine主要是淘宝团队开发。特点是融入了因淘宝自身的一些业务带来的新功能。

    Nginx官方版本,更新迭代比较快,并且提供免费版本和商业版本。

    Nginx源码结构:

    代码量大约11万行C代码

    源代码目录结构

    core (主干和基础设置)

    event (事件驱动模型和不同的IO复用模块)

    http (HTTP服务器和模块)

    mail (邮件代理服务器和模块)

    os (操作系统相关的实现)

    misc (杂项)

    Nginx特点:

    反向代理,负载均衡器

    高可靠性、单master多worker模式

    高可扩展性、高度模块化

    非阻塞

    事件驱动

    低内存消耗

    热部署

    2. Nginx应用场景

    场景如下:

    静态文件服务器

    反向代理,负载均衡

    安全防御

    智能路由(企业级灰度测试、地图POI一键切流)

    灰度发布

    静态化

    消息推送

    图片实时压缩

    防盗链

    3. Nginx框架模型及流程介绍

    进程组件角色:

    master进程

    监视工作进程的状态

    当工作进程死掉后重启一个新的

    处理信号和通知工作进程

    worker进程

    处理客户端请求

    从主进程处获得信号做相应的事情

    cache loader进程

    加载缓存索引文件信息,然后退出

    cache manager进程

    管理磁盘的缓存大小,超过预定值大小后最少使用数据将被删除

    框架模型:

    框架模型流程:

    框架模型流程:

    核心流程图:

    核心流程图:

    http请求流程:

    Upstream设计:

    访问第三方Server服务器

    底层HTTP通信非常完善

    异步非阻塞

    上下游内存零拷贝,节省内存

    支持自定义模块开发

    upstream流程:

    4. Nginx定制化模块开发

    Nginx的模块化设计特点:

    高度抽象的模块接口

    模块接口非常简单,具有很高的灵活性

    配置模块的设计

    核心模块接口的简单化

    多层次、多类别的模块设计

    核心模块:

    handler模块:

    接受来自客户端的请求并构建响应头和响应体。

    filter模块:

    过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理。它的处理时间在获取回复内容之后,向用户发送响应之前。

    upstream模块:

    使nginx跨越单机的限制,完成网络数据的接收、处理和转发,纯异步的访问后端服务。

    load_balance:

    负载均衡模块,实现特定的算法,在众多的后端服务器中,选择一个服务器出来作为某个请求的转发服务器。

    ngx_lua模块:

    脚本语言

    内存开销小

    运行速度快

    强大的 Lua 协程

    非阻塞

    业务逻辑以自然逻辑书写

    版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。

    相关文章

      网友评论

        本文标题:转载:Nginx 架构及核心流程及模块介绍

        本文链接:https://www.haomeiwen.com/subject/ueofvqtx.html