Nginx 是一种非常流行的 Web 服务器软件,全球超过 30%的网站都在 Nginx 上运行,如腾讯、淘宝、百度、京东、新浪、网易等。

对于开发来说,我们在工作中或多或少都会遇到 web 性能优化、高并发等问题,而 Nginx 是一个万能药,它具备高性能、高扩展性、高可靠性、低内存消耗等优势,不管是个人建立网站、博客,还是进行互联网应用开发,都可以轻松应对。

我们都知道 Nginx 好用,但大多数人对 Nginx 的理解和使用只停留在初步阶段,并没有挖掘出 Nginx 的效能。我们收集了一些大家使用 Nginx 遇到的困惑,贴几个:

  • 一开始公司就让我来配置服务器,真的懵了,原理也不大懂,网上看了一堆资料,没个系统化,到底要怎么学?
  • Nginx 处理 HTTP 请求需要经过哪 11 个阶段啊?!
  • 如何用 Nginx 系统编写 HTTP 模块?

实验楼上线了一门《Nginx 网络模块编写入门》课程,或许可以帮助到有系统学习Nginx 需求的同学们。

课程从研发的角度,系统介绍了 Nginx 网络模块的编程,分为 9 个实验,将逐一讲解:

  • 如何编译和使用 Nginx;
  • 如何使用相关的验证工具,编写简单的 HTTP 模块和 HTTP 过滤模块,并在此基础上介绍如何使用自定义变量;
  • 如何使用 Nginx 的定时器;
  • 如何使用工具检查编写的模块中是否存在内存问题。

即使你之前从未使用过 Nginx 也没关系,课程会从 Nginx 的历史和优势讲起,帮助你建立起系统的认识。

Nginx 的发展史

Nginx 最开始是由 Igor Sysoev 在 Rambler.ru 任职期间开发的,它诞生于 2002 年 8 月 6 日。

从 nginx-0.5.x 开始(时间为 2007 年左右),Nginx 开始受到国内互联网人士关注,如在国内普及 Nginx 的先驱 — 张宴。

2011 年 12 月 2 日,阿里巴巴旗下的淘宝网技术团队正式开源了基于 nginx-1.0.10 开发的一个重要变种 Tengine 。

2020 年 3 月,Nginx 在全球 Web 服务器市场的占有率首超老牌 Web 服务器 Apache,见下图:

图片引自 2020 年 3 月 Web 服务器市场占有率调查 。

Nginx 为什么会流行

在 Nginx 出现之前,已经存在 Apache 这种功能与 Nginx 有很多重合的服务器,而且 Apache 经过几十年的发展,运行高度稳定,功能也非常完备,支持的平台众多,配套的软件不计其数。但是也正因为 Apache 已经存在几十年了,历史包袱重,其性能低和对系统资源的占用率高等问题越来越不满足互联网和移动互联网发展的需求。

Apache 在较老的系统上,只能用低效的 select 网络 I/O 多路复用接口(即提供一个或者几个函数来添加,监控和删除多个连接的网络事件,如可读,关闭等),虽然在较新的系统上,它也支持如 epoll 等高效的网络 I/O 多路复用接口,但是其由于历史原因,它的一个进程同时只能全程处理一个请求,处理完后才能再处理另一个请求,这可能导致进程频繁切换,严重消耗系统资源,无法应对现在动则上万,十几万甚至几十万的并发请求:

Nginx 从诞生起就使用了 epoll (Linux)和 kqueue (FreeBSD)等高效的网络 I/O 多路复用接口。不过,在某些平台上它仍然能使用 select 等传统的网络 I/O 多路复用接口,如 Windows 。不仅如此,Nginx 从设计之初就保证了一个进程同时能处理很多个请求,所以它减少了进程切换带来的开销:

另外,Nginx 也支持常见的操作系统,如 Linux,FreeBSD,MacOS,Windows 等。再次,Nginx 对资源的占用很少,稳定性也经受住了众多公司的检验。最后,Nginx 为编写第三方模块提供了一套稳定的接口,吸引了众多个人,组织和公司为其开发各种功能的模块,详情可以参考 Nginx 第三方模块列表(部分)。

总之,就是 Nginx 赶上了操作系统的变革时代(Linux 2.6+ 开始支持 epoll),又满足了历史的发展需求(互联网和移动互联网的繁荣),导致它变得流行。

篇幅有限,更多课程内容可以在实验楼边敲代码边学习~

点击《Nginx 网络模块编写入门》,免费学习课程前两节。

从入门到实践,快速掌握 Nginx 研发相关推荐

  1. 基于华为鲲鹏云的c语言程序设计,华为DevRun第四讲,华为云鲲鹏云服务移植快速入门与实践...

    6月23日,华为DevRun开发者沙龙系列活动在线上举行,"华为云和TA的朋友们公开课"第四次直播课程顺利结束,本次公开课的主题是<华为云鲲鹏云服务移植快速入门及实践> ...

  2. Nginx入门与实践

    文章目录 1.基本介绍 1.1 Nginx概述 1.2 正向代理 1.3 反向代理 1.4 负载均衡 1.5 动静分离 2. Nginx的安装 3.Nginx的常用命令 4.Nginx的配置文件 4. ...

  3. 华为鲲鹏云服务器发布win项目,华为DevRun第四讲,华为云鲲鹏云服务移植快速入门与实践...

    6月23日,华为DevRun开发者沙龙系列活动在线上举行,"华为云和TA的朋友们公开课"第四次直播课程顺利结束,本次公开课的主题是<华为云鲲鹏云服务移植快速入门及实践> ...

  4. Nginx 从入门到实践,万字详解!

    最近越来越频繁地遇到需要配置反向代理的场景,在自己搭建博客的时候,也不可避免要用到 Nginx,所以这段时间集中学习了一下 Nginx,同时做了一些笔记,希望也可以帮助到大家- ???? 这篇文章会在 ...

  5. SWMM从入门到实践教程 03 快速入门案例的设施参数设置与批量设置

    文章目录 1 雨量计 1.1 雨量计基础设置 1.2 雨量计数据来源 2 汇水区 2.1 参数讲解 2.2 设置结果 3 检查井 3.1 参数讲解 3.2 批量设置 4 管道 4.1 参数讲解 4.2 ...

  6. SWMM从入门到实践教程 02 快速入门案例的绘制

    文章目录 1 建模准备 2 设置各类设施 2.1 添加雨量计 2.2 添加子汇水区(正方形) 2.3 绘制节点(圆形) 2.4 绘制管渠 2.5 添加排水口(三角形) 3 画面调节 1 建模准备 建模 ...

  7. python开发web教学视频_Python快速Web开发入门与实践视频课程

    Python快速Web开发入门与实践欢迎来到KK的<Python快速Web开发入门与实践>捧场!下面请允许我为这套课程做一点介绍. <Python快速Web开发入门与实践>是一 ...

  8. python快速编程入门课后简答题答案-Python编程:从入门到实践(第2版)第1章习题答案...

    <Python编程:从入门到实践>是一本不错的书.第2版已经公开预售,预计会在10月份正式上市. 动手试一试 本章的练习都是探索性的,但从第2章开始将要求你用那一章学到的知识来解决问题. ...

  9. Vue—上手实践—快速入门

    原文地址:Vue快速入门 目录 3.快速入门 3.1.创建工程 3.2.安装vue 3.2.1.下载安装 3.2.2.使用CDN 3.2.3.推荐npm安装 3.3.vue入门案例 3.3.1.HTM ...

最新文章

  1. 深入卷积神经网络背后的数学原理
  2. 一些汇编中的 trick
  3. 斜堆学习笔记+复杂度证明
  4. sdut 取数字问题(深搜,动态规划)
  5. py文件输出结果_24python中编码格式和文件操作
  6. 大数据分析必须要会的数据预处理操作(二)!!!
  7. 超详细的MySQL工作原理 体系结构
  8. React Native 触摸事件处理详解
  9. oracle erase,Arc SDE forOracle实现erase空间分析计算
  10. win10无线断开无法连接服务器,简单几步解决win10wifi一直断开连接不上的问题
  11. 微信小程序+nginx+php+mysql实现数据库管理【第一期】数据库与php的正确连接
  12. 在HarmonyOS中实现基于JS卡片的音乐播放器
  13. 【ABC算法】人工蜂群算法原理及代码
  14. 计算自然数e以及怎样理解为什么出现这么一个数
  15. 最新!OMNI3D:3D目标检测的大型基准和模型(Meta AI)
  16. 我在赶集网的两个月(完整版)
  17. 国密:生成SM2秘钥、加解密及加验签
  18. 为什么你学过Java却忘光了——记第一次助教同学见面会
  19. 技术|Android安装包极限优化
  20. Axure RP 9最新版的授权码(专业版)亲测可用

热门文章

  1. bzoj3140: [Hnoi2013]消毒(二分图)
  2. POJ 1789248512583026
  3. [SecureCRT]通过SFTP方式上传本地文件到服务器
  4. css :after :berfor
  5. 关于scws分词的一些记录
  6. 第三周课程总结实验报告
  7. 关于SharePoint中管理列表项权限
  8. 随堂小测app冲刺(三)
  9. Oracle通过主键id删除记录很慢
  10. ELF格式解析库之提取信息