简介

Nginx 是一个免费、自由、开源、高性能的 Web 服务器和反向代理服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。 因它的高性能、稳定性、丰富的功能、简单的配置和低系统资源的消耗而闻名。

Nginx 解决了服务器的 C10K(一秒之内连接 10k 个客户端)问题。 它的设计不像传统的服务器那样使用线程处理请求,而是事件驱动机制,是一种异步事件驱动结构。

优点

  1. 更快

得益于事件驱动机制,在正常情况下,单次请求会得到更快的响应,在高峰期(如有数以万计的并发请求)可以比其他 Web 服务器更快地响应请求。

  1. 高扩展性,跨平台

Nginx 的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。 因此,当对某一个模块修复 Bug 或进行升级时,可以专注于模块自身,无须在意其他。 而且在 HTTP 模块中,还设计了 HTTP 过滤器模块。 一个正常的 HTTP 模块在处理完请求后,会有 HTTP 过滤器模块对请求的结果进行再处理。 当开发一个新的 HTTP 模块时,不但可以使用诸如 HTTP 核心模块,还可以复用大量已有的 HTTP 过滤器模块。 这种低耦合度的优秀设计,造就了 Nginx 庞大的第三方模块,当然,公开的第三方模块也如官方发布的模块一样容易使用。

Nginx 的模块都是嵌入到二进制文件中执行的,无论官方发布的模块还是第三方模块都是如此。 这使得第三方模块一样具备极其优秀的性能,充分利用 Nginx 的高并发特性。 因此,许多高流量的网站都倾向于开发符合自己业务特性的定制模块。

  1. 高可靠性

用于反向代理,宕机的概率微乎其微。 高可靠性是我们选择Nginx的最基本条件,因为 Nginx 的可靠性是大家有目共睹的,很多家高流量网站都在核心服务器上大规模使用 Nginx。 Nginx 的高可靠性来自于其核心框架代码的优秀设计、模块设计的简单性。 另外,官方提供的常用模块都非常稳定,每个 worker 进程相对独立,master 进程在 1 个 worker 进程出错时可以快速拉起新的 worker 子进程。

  1. 低内存消耗

一般情况下,10000 个非活跃的 HTTP Keep-Alive 连接在 Nginx 中仅消耗 2.5MB 的内存,这是 Nginx 支持高并发连接的基础。

  1. 单机支持十万并发

理论上,Nginx 支持的并发连接上限取决于内存,这并未封顶。当然,能够及时地处理更多的并发请求,是与业务特点紧密相关的。

  1. 热部署

master 管理进程与 worker 工作进程的分离设计,使得 Nginx 能够提供热部署功能。 当然,它也支持不停止服务就更新配置项、更换日志文件等功能。

  1. BSD 许可协议

BSD 许可协议不只是允许用户免费使用,它还允许在自己的项目中直接使用或修改 Nginx 源码,然后发布。

以上7个特点当然不是Nginx的全部,拥有无数个官方功能模块、第三方功能模块使得Nginx能够满足绝大部分应用场景, 这些功能模块间可以叠加以实现更加强大、复杂的功能,有些模块还支持Nginx与Perl、Lua等脚本语言集成工作,大大提高了开发效率。 这些特点促使用户在寻找一个Web服务器时更多考虑Nginx。 选择Nginx的核心理由还是它能在支持高并发请求的同时保持高效的服务

powered by Gitbook该文件修订时间: 2020-04-10 10:05:54

results matching ""

    No results matching ""

    results matching ""

      No results matching ""