企业级Web应用及Nginx介绍
1. Nginx 简介
Nginx("engine x")是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。官方测试 nginx 能够支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。2011 年 6 月 1 日,nginx 1.0.4 发布。
Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师 Igor Sysoev 所开发,其特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:新浪、网易、腾讯等。
功能:web 服务器、web reverse proxy、smtp reverse proxy

2. Nginx 和 Apache 的比较
企业中常见的 web 应用服务器:
- Apache:https://httpd.apache.org/
- Nginx:https://nginx.org/en/
- IIS
- GWS
- WebLogic
WEB 应用服务器市场占用率排名:https://w3techs.com/technologies/cross/web_server/ranking
- Nginx 相对于 Apache 的优点:
- 轻量级,同样起 web 服务,比 apache 占用更少的内存及资源;
- 抗并发,nginx 处理请求是异步非阻塞的,而 apache 则是阻塞型的,在高并发下 nginx 能保持低资源低消耗高性能;
- 高度模块化的设计,编写模块相对简单;
- 社区活跃,各种高性能模块出品迅速。
- Apache 相对于 nginx 的优点:
- rewrite,比 nginx 的 rewrite 强大;
- 模块超多,基本想到的都可以找到;
- 少 bug,nginx 的 bug 相对较多。
-
Nginx 配置简洁,Apache 复杂。
-
最核心的区别在于 Apache 是同步多进程模型,一个连接对应一个进程;Nginx 是异步的,多个连接(万级别)可以对应一个进程。
另一个 web 应用服务器 Tomcat 则无法支持高并发,以下为一份测试结果:
| 并发访问数 | 响应时间(秒) | 备注 |
|---|---|---|
| 100 | 0.8 | 完美 |
| 150 | 1 | 完美 |
| 200 | 1.5 | 响应时间有微小波动,比较完美 |
| 250 | 1.8 | 比较完美,此时是理想情况下最大的并发用户数量 |
| 280 | 开始出现连接丢失问题,连接开始不稳定 | |
| 300 | 3 | 响应时间有较大波动峰值为 6 秒,较差 |
| 350 | 3 | 开始大量出现连接丢失问题,连接很不稳定 |
| 400 | 3.8 | 连接丢失数量达到 3000 次以上 |
| 450 | 4 | 连接丢失数量达到 6000 次以上 |
| 500 | 4 | 连接丢失数量达到 11000 次以上 |
| 550 | 6 | 连接丢失数量达到 21000 次以上 |
| 600 | 6 | 连接丢失数量达到 25000 次以上,系统出现异常情况,测试数据到此为止 |
3. Nginx 发行版
Tengine 是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine 的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的 Web 平台。
浙公网安备 33010602011771号