百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

F5 NGINX 核心人员倾力打造,搞懂 NGINX 这一本就够了

off999 2025-02-06 16:04 38 浏览 0 评论

Nginx 因其轻量化支持高并发等特性,在国内大量企业广泛的使用。作为全球 Web 服务器的领导者,它备受业界瞩目,目前正以蓬勃之势迅速发展,并将以无可替代之势称霸未来。它因优异的性能和强大的可维护性受到了广大应用开发者的喜爱,也给企业带来了巨大的商业价值。


NGINX 的由来:C10K 问题


NGINX 最初是为解决著名的 C10K 问题而设计的。NGINX 能有效地提高单台 Web 服务器响应并发请求的能力,与传统的 Apache 相比,在内存使用量和每秒处理的并发请求数方面都有巨大的改进。


究其根本,Apache 会为每个请求分别创建新进程,而 NGINX 采用异步非阻塞的事件驱动机制,并在内存数据复制方面做了优化。NGINX 与 Apache 在高并发情况下的内存使用量如下图:



可以看出,随着并发连接数的增加,NGINX 的内存使用量并没有明显变大,NGINX 只使用不到 Apache 十分之一的内存就可以处理和它相同的并发连接数。


另外,随着并发连接数的增加,NGINX 每秒处理的请求数虽然有所减少,但仍为 Apache 每秒处理的请求数的数倍,如下图:



NGINX 市场占有率持续攀升


2021 年 1 月的 Netcraft Web 服务器市场占有率分析报告显示,NGINX 的市场占有率已经超过了Apache 和 Microsoft,位居第一


1995 年 8 月以来的 Web 服务器市场占有率变化在线活跃服务器中,NGINX 的使用率排在第三位,且持续攀升




NGINX的优良特性和功能


NGINX 作为 Web 服务器,被大量高负荷网站(腾讯、新浪、网易、淘宝等)广泛使用,具备 Apache、Lighttpd、Tomcat 等服务器不具备的优良特性:


  • 高并发。能够处理高并发请求是 NGINX 最显著的特点。NGINX 由 C 语言编写,采用事件驱动模式,异步非阻塞地处理海量并发请求。worker 进程默认亲和到不同的 CPU 核上,避免了不同进程抢占 CPU 资源的问题和调度带来的开销。NGINX 还针对不同的操作系统做了不同的优化,比如在选择事件队列时,Darwin 系统选择 kqueue,Linux 系统选择 epoll,Windows 系统选择 select。


  • 高稳定性。模块化的架构使 NGINX 各部分的功能完全解耦,master 进程和worker 进程一对多的方式分开了控制层面和数据层面,确保在 worker 进程发生异常时能够及时发现并纠正,也给它的热升级提供了可能性。另外,NGINX 没有采用多线程的方式来实现 worker 进程,使得各个 worker 进程相对独立。


  • 高扩展性。NGINX 以模块为单位组织相应的配置解析和功能实现,做到了模块内高内聚,模块间低耦合。一些常用的数据结构(如链表、队列、红黑树)都做了有效的封装,供开发者使用。


NGINX 的应用场景广泛核心功能如下:


  • 反向代理。相比正向代理,反向代理运行于服务器端,代表服务器端接收来自客户端的请求,并将后端服务器给出的响应返回给客户端。反向代理运转稳定,配置灵活,对七层(HTTP)和四层(TCP/UDP)均可提供代理。NGINX 的反向代理功能通常会和其他核心功能联用,比如跟负载均衡功能联用,可以实现带权重的请求转发,以及限流和灰度发布。


  • 负载均衡。当今互联网环境日益复杂,单台服务器的处理能力已经不能满足高并发环境下的响应要求,因此我们需要使用负载均衡的方式,水平扩展出多台服务器均摊处理并发的请求。NGINX 提供了针对 HTTP、TCP 和 UDP 的负载均衡,以及多种内置策略(如轮询、加权轮询、IP 和 cookie hash 等),让用户能够根据自己业务的流量特点,按照特定的规则分流来自前端的请求。NGINX 还给予了用户扩展策略的能力,用户可以添加新的 NGINX 模块来定制策略。有些客户端的请求是无状态的,有些是包含状态的,即长连接,NGINX 提供了共享内存映射机制和 hash、IP hash 等策略来实现会话亲和性。NGINX 的负载均衡同时也包含检查上游服务器状态的能力


  • 静态缓存。据统计,Web 应答流量中有超过一半的数据是静态资源,我们可以使用静态缓存把这些资源缓存下来。NGINX 的静态缓存功能有效减少了服务器在计算和传输静态资源时产生的性能消耗,配以 gzip 功能还可以减少网络带宽的消耗。静态资源包括动态页面中的静态部分、静态页面和资源文件等。


  • Web 服务器。Web 服务器是 NGINX 的基础功能。用户可以使用 server 配置块定义自己的 Web 服务器,如监听 IP 端口、协议类型、SSL 及网络传输行为;使用 location 配置块定义 URL 及请求发生时的响应逻辑。NGINX Unit 是 NGINX 商业版提供的轻量级动态服务器方案,其中集成了多种主流语言(如 Python、PHP、Go、JavaScript、Ruby、Java 等)的运行时环境,可以独立运行于宿主机或者容器中。


  • 安全和访问控制。NGINX 提供了丰富的安全和访问控制功能,这些功能中有些是通过 NGINX 核心模块实现的,有些是通过第三方模块实现的。NGINX 商业版对这些功能做了进一步增强。以下是常见的安全和访问控制场景
  • a.SSL 卸载/加载:实现对四层、七层服务器流量的 SSL 加解密。
  • b.HTTP 认证访问控制:实现对前端请求 JWT 或 Basic Auth 的认证方式。
  • c.针对特定资源的访问控制:针对资源的类型或者访问者地址做控制。
  • d.动态黑白名单:针对客户端 IP 或 keyval 模块实现基于 IP 的访问控制。



NGNIX 开发看这一本就够了

《NGNIX经典教程》

F5 NGINX核心人员倾力打造

关注基础、用法和现代场景


林静,刘旭峰,章澍,

廖健雄,宗兆伟,邹俊 | 著



本书分为 5 个部分,共 32 章:


第一部分为基础入门篇,介绍 NGINX 的基础配置、运行机制与原理;

第二部分为开源功能篇,剖析 NGINX 开源软件的功能模块,讲述各个模块的功能集合;

第三部分为应用场景篇,通过特定的场景展现 NGINX 的能力及配置方法,站在使用者的角度阐述 NGINX 的复杂应用场景及注意事项;

第四部分为商业软件篇,介绍 NGINX 商业版模块的增强能力;

最后是 NJS 开发篇,使用NJS 脚本化的方式扩展 NGINX 的能力。


本书思维导图



读者对象


软件开发工程师;运维工程师;系统工程师;软件架构师;DevOps人员


作者简介


林静,F5 软件架构师,应用交付领域专家,开源爱好者,NGINX 布道师,拥有TOGAF 9、CKA 等认证。


刘旭峰,F5 中国区金融行业技术总监,先后任职于 IBM、F5 等公司,专注于数据中心架构、金融科技应用、开源软件技术、IaaS/PaaS 等领域。


章澍,F5 中国区高级销售总监,领导过不同的行业销售团队,见证了各行业 IT 建设和发展的不同阶段,深度了解客户在 NGINX 使用中的技能痛点和需求。


廖健雄,F5 NGINX 专家,在金融科技、开源软负载、业务高并发等领域具备丰富的架构规划、产品研发经验。


宗兆伟,F5 资深软件研发工程师,涉及的技术领域包括数据存储、云原生生态、DevOps 领域,深入理解云生态中的各种技术。


邹俊,先后供职于 CA、EMC、Pivotal、F5 等公司,积累了丰富的容器云平台相关经验,主要关注微服务、APIM、Kubernetes 等行业技术的发展


大咖推荐


应用流量技术复杂,企业掌握和使用负载均衡器、服务网关面临着很大的挑战。NGINX提供了一个高性能、易使用、安全可靠的开源平台,为企业现代化应用提供了坚实的保障。本书提供了丰富的NGINX实践案例,是一本干货满满的参考书,可以帮助用户更好地理解与使用NGINX。

——刘博,中国农业银行研发中心技术平台工程师

本书的重点立足于实际应用场景,通过NGINX在各个不同场景的部署与配置方式,完整地梳理了一个大型企业在多云架构、微服务、复杂的访问调度等场景下以及面对新技术挑战时的解决方案,对于读者和用户都是非常实用的解决思路指引与解决方案参考。


——曾炜,中国工商银行软件开发中心高级技术经理,网络与安全专家

NGINX自诞生至今已经十几年了,一直处于活跃开发状态,其新版本持续增加强大的功能,满足云计算、微服务等各种场景下的技术应用需求。市面上的图书或侧重NGINX源码的解析,或侧重NGINX原理及配置的介绍,但站在使用者视角对NGINX复杂应用场景的解读和指导性资料相对稀少。本书的一大亮点是,作者通过特定的场景展现NGINX的能力及配置方法,涵盖了Web服务器、反向代理、DevOps、API、Kubernetes、NJS开发、安全等当前NGINX的各种使用场景,注重实战,对使用NGINX的开发工程师、软件架构师、运维工程师均具有重要的参考价值。

——王丽丽,中信银行架构师,开源治理专家

NGINX在我身边的工作环境中,正逐渐变得无处不在。对于处在数字化转型过程中的银行业而言,NGINX的高并发处理能力与丰富灵活的功能特性,使得它成为数据中心世界里非常重要的一个组成部分。细读一下这本书的目录,你会发现原来通过NGINX还可以做更多的事情,而不需要追加IT投资去进行重复建设。

——王钢,江苏银行科技部总经理助理



学习NGINX,一键拥有


相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: