我为财狂下载,8l9988,toro郭苇昀
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模块:
upstream模块:
load_balance:
ngx_lua模块:
- 脚本语言
- 内存开销小
- 运行速度快
- 强大的 lua 协程
- 非阻塞
- 业务逻辑以自然逻辑书写
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
-
应用系统分布式构建运维
应用系统分布式构建运维 1+x初级,项目四 部署主从数据库 基础环境安装 准备两台主机 修改主机名 # hostnamectl set-hos...
[阅读全文]
-
-
Linux环境变量
在bash shell中,环境变量分为两类: 全局变量 局部变量 全局环境变量 全局环境变量对于shell会话和所有生成的子shell都是可见的。例如 ...
[阅读全文]
-
-
-
初步进入Linux世界
初步进入Linux世界 一、Linux目录介绍 1.树型目录结构 Linux文件系统采用了多级目录的树型层次结构管理文件。树型结构的最上层是根目录,用/...
[阅读全文]
-
Linux常用命令(详细)
Linux常用命令 一、控制台相关命令 控制台命令就是指通过字符界面输入的可以操作系统的命令。我们现在要了解的是基于Linux操作系统的基本控制台命令。...
[阅读全文]
-
-
网友评论