Nginx简介

1. Nginx介绍

Nginx (engine x)是完全使用C语言开发的程序,是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。

2. Nginx发展历史

  1. Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
  2. 2011年6月1日,nginx1.0.4发布。

3. Nginx核心技术

  1. 基于事件模型,底层使用多路复用I/O的epoll模式。
  2. 使用零拷贝技术可以将数据从文件系统直接发送到网络套接字中,而不需要中间的内存拷贝(好处是可以减少CPU的使用量,减少内存带宽的消耗)。

4. Nginx分支

常用版本分为四大阵营:

  1. Nginx开源版 官网地址:http://nginx.org/
  2. Nginx plus商业版 官网地址:https://www.nginx.com
  3. Openresty
    官网地址:http://openresty.org
  4. Tengine
    官网地址:http://tengine.taobao.org/
    Tengine是Taobao团队开发维护,从2023年底便开始进入维护阶段不再进行功能特性的开发。

5. Nginx和Apache区别

特点 Nginx Apache
并发处理 高并发处理能力,
轻量级且低内存消耗
对静态文件处理高效,
但在高并发情况下内存消耗较大
资源占用 占用更少的系统资源和内存 占用较多的系统资源和内存
事情驱动 使用事件驱动模型,
可在较少的线程上同时处理多个连接
使用多线程模型,
会为每个连接创建一个线程
配置灵活性 配置简单明了,
易于阅读和维护
配置相对复杂,
需要更多的配置项指定
扩展性 支持动态模块和第三方扩展,
可自定义功能
支持动态模块和第三方扩展,
但相对Nginx更少
虚拟主机 支持无限个虚拟主机配置,
每个虚拟主机独立配置
支持无限个虚拟主机配置,
但每个虚拟主机使用同一套配置
模块支持 支持反向代理、负载均衡、
HTTP缓存等
支持反向代理、负载均衡、SSL等
用户群体 更适合高并发、网络应用场景,
如反向代理、负载均衡
更适合传统Web服务器应用,
如静态内容和PHP

评论