当初我要是这么学习Nginx就好了!(多图详解)

论坛 期权论坛     
选择匿名的用户   2021-6-2 17:51   620   0
<blockquote>
<p>本文主要帮助大家熟悉 Nginx 有哪些应用场景、Nginx 特点和架构模型以及相关流程、Nginx 定制化开发的几种模块分类。读完本文你将对 Nginx 有一定的认识。“</p>
</blockquote>
<p> </p>
<p>本文将围绕如下几个部分进行讲解:</p>
<ul><li> <p><strong>Nginx 简介及特点</strong></p> </li><li> <p><strong>Nginx 应用场景</strong></p> </li><li> <p><strong>Nginx 框架模型介绍</strong></p> </li><li> <p><strong>Nginx 内部流程介绍</strong></p> </li><li> <p><strong>Nginx 自定义模块开发介绍</strong></p> </li><li> <p><strong>Nginx 核心时间点模块介绍</strong></p> </li><li> <p><strong>Nginx 分流模块介绍</strong></p> </li><li> <p><strong>Nginx 动态 upstream 模块介绍</strong></p> </li><li> <p><strong>Nginx query_upstrem 模块介绍</strong></p> </li><li> <p><strong>Nginx query_conf 模块介绍</strong></p> </li><li> <p><strong>Nginx 共享内存支持 Redis 协议模块介绍</strong></p> </li><li> <p><strong>Nginx 日志回放压测工具介绍</strong></p> </li></ul>
<p> </p>
<p>Nginx 简介以及特点</p>
<p> </p>
<p>Nginx (engine x) 是一个高性能的 Web 服务器和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器:</p>
<ul><li> <p>它由俄罗斯程序员 Igor Sysoev 于 2002 年开始开发。</p> </li><li> <p>Nginx 是增长最快的 Web 服务器,市场份额已达 33.3%。</p> </li><li> <p>全球使用量排名第二,2011 年成立商业公司。</p> </li></ul>
<p> </p>
<p>Nginx 社区分支:</p>
<ul><li> <p><strong>Openresty:</strong>作者 &#64;agentzh(章宜春)开发的,最大特点是引入了 ngx_lua 模块,支持使用 Lua 开发插件,并且集合了很多丰富的模块,以及 Lua 库。</p> </li><li> <p><strong>Tengine:</strong>主要是淘宝团队开发。特点是融入了因淘宝自身的一些业务带来的新功能。</p> </li><li> <p><strong>Nginx 官方版本,</strong>更新迭代比较快,并且提供免费版本和商业版本。</p> </li></ul>
<p> </p>
<p>Nginx 源码结构(代码量大约 11 万行 C 代码):</p>
<ul><li> <p><strong>源代码目录结构 Core(主干和基础设置)</strong></p> </li><li> <p><strong>Event(事件驱动模型和不同的 IO 复用模块)</strong></p> </li><li> <p><strong>HTTP(HTTP 服务器和模块)</strong></p> </li><li> <p><strong>Mail(邮件代理服务器和模块)</strong></p> </li><li> <p><strong>OS(操作系统相关的实现)</strong></p> </li><li> <p><strong>Misc(杂项)</strong></p> </li></ul>
<p> </p>
<p>Nginx 特点如下:</p>
<ul><li> <p><strong>反向代理,负载均衡器</strong></p> </li><li> <p><strong>高可靠性、单 Master 多 Worker 模式</strong></p> </li><li> <p><strong>高可扩展性、高度模块化</strong></p> </li><li> <p><strong>非阻塞</strong></p> </li><li> <p><strong>事件驱动</strong></p> </li><li> <p><strong>低内存消耗</strong></p> </li><li> <p><strong>热部署</strong></p> </li></ul>
<p> </p>
<p>Nginx 应用场景</p>
<p> </p>
<p>Nginx 的应用场景如下:</p>
<ul><li> <p><strong>静态文件服务器</strong></p> </li><li> <p><strong>反向代理,负载均衡</strong></p> </li><li> <p><strong>安全防御</strong></p> </li><li> <p><strong>智能路由(企业级灰度测试、地图 POI 一键切流)</strong></p> </li><li> <p><strong>灰度发布</strong></p> </li><li> <p><strong>静态化</strong></p> </li><li> <p><strong>消息推送</strong></p> </li><li> <p><strong>图片实时压缩</strong></p> </li><li> <p><strong>防盗链</strong></p> </li></ul>
<p> </p>
<p>Nginx 框架模型介绍</p>
<p> </p>
<p>进程组件角色:</p>
<ul><li> <p><strong>Master 进程:</strong>监视工作进程的状态;当工作进程死掉后重启一个新的;处理信号和通知工作进程。</p> </li><li> <p><strong>Worker 进程:</strong>处理客户端请求,从主进程处获得信号做相应的事情。</p> </li><li> <p><strong>Cache Loader 进程:</strong>加载缓存索引文件信息,然后退出。</p> </li><li> <p><strong>Cache Manager进程:</strong>管理磁盘的缓存大小,超过预定值大小后最少使用数据将被删除。</p> </li></ul>
<p> </p>
<p>Nginx 的框架模型如下图:</p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-458acbd7ba1bbf197f7a82781e3a03fe"></p>
<p><img alt="" height="1" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-acc1a3da0a7c5499dcf50625b62085a6.gif" width="1"></p>
<p>框架模型流程如下图:</p>
<p> </p>
<p><img alt="" height="1" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-6eb3f6dcef29d57816f03102bf2daf58.gif" width="1"><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-66b10fbfb84a3441084b5fa7e4beac99"></p>
<p>Nginx 内部流程介绍</p>
<p> </p>
<h2>Nginx 框架模型流程如下图:</h2>
<p><img alt="" src="h
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP