Nginx简介
1. Nginx介绍
Nginx (engine x)是完全使用C语言开发的程序,是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。
2. Nginx发展历史
- Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
- 2011年6月1日,nginx1.0.4发布。
3. Nginx核心技术
- 基于事件模型,底层使用多路复用I/O的epoll模式。
- 使用零拷贝技术可以将数据从文件系统直接发送到网络套接字中,而不需要中间的内存拷贝(好处是可以减少CPU的使用量,减少内存带宽的消耗)。
4. Nginx分支
常用版本分为四大阵营:
- Nginx开源版 官网地址:http://nginx.org/
- Nginx plus商业版 官网地址:https://www.nginx.com
- Openresty
官网地址:http://openresty.org - Tengine
官网地址:http://tengine.taobao.org/
5. Nginx和Apache区别
特点 | Nginx | Apache |
---|---|---|
并发处理 | 高并发处理能力, 轻量级且低内存消耗 | 对静态文件处理高效, 但在高并发情况下内存消耗较大 |
资源占用 | 占用更少的系统资源和内存 | 占用较多的系统资源和内存 |
事情驱动 | 使用事件驱动模型, 可在较少的线程上同时处理多个连接 | 使用多线程模型, 会为每个连接创建一个线程 |
配置灵活性 | 配置简单明了, 易于阅读和维护 | 配置相对复杂, 需要更多的配置项指定 |
扩展性 | 支持动态模块和第三方扩展, 可自定义功能 | 支持动态模块和第三方扩展, 但相对Nginx更少 |
虚拟主机 | 支持无限个虚拟主机配置, 每个虚拟主机独立配置 | 支持无限个虚拟主机配置, 但每个虚拟主机使用同一套配置 |
模块支持 | 支持反向代理、负载均衡、 HTTP缓存等 | 支持反向代理、负载均衡、SSL等 |
用户群体 | 更适合高并发、网络应用场景, 如反向代理、负载均衡 | 更适合传统Web服务器应用, 如静态内容和PHP |