Nginx 简单介绍
Nginx(发音 “engine x”)是一个高性能的 Web 服务器和反向代理服务器,同时也可用作负载均衡器和HTTP 缓存。它由俄罗斯程序员 Igor Sysoev 于 2004 年发布,最初是为了解决 C10K 问题(同时处理 1 万个并发连接)。
一、一句话理解
Nginx 是一个”流量入口管家”,所有用户的请求先到它这里,它决定:谁进来、往哪转、怎么缓存。
二、核心特点
| 特点 | 说明 |
|---|---|
| 高性能 | 基于异步非阻塞事件驱动架构,单进程可处理数万并发连接,内存消耗极低 |
| 多角色 | 可以充当 Web 服务器、反向代理、负载均衡器、HTTP 缓存、API 网关 |
| 配置简单 | 配置文件语法简洁,模块化设计,易于理解和修改 |
| 高稳定性 | 即使在高负载下也能稳定运行,很少崩溃 |
| 模块化 | 支持丰富的第三方模块,功能可灵活扩展 |
三、Nginx 的三种主要角色
1. Web 服务器
- 功能:直接提供静态文件服务(HTML、CSS、JS、图片)
- 特点:比 Apache 占用更少内存,处理静态文件速度极快
- 例子:用户访问
https://example.com/index.html,Nginx 直接读取文件返回
2. 反向代理
- 功能:接收客户端请求,转发给后端服务器(如 Tomcat、Node.js),再将响应返回给客户端
- 特点:隐藏后端服务器细节,可做统一入口、SSL 卸载、缓存
- 例子:用户访问
https://example.com/api,Nginx 转发给内网的192.168.1.10:8080
3. 负载均衡器
- 功能:将流量分发到多台后端服务器
- 支持算法:轮询、加权轮询、IP 哈希、最少连接数
- 例子:用户请求到达 Nginx,Nginx 按轮询策略分发给 Server A/B/C
四、典型架构位置
[用户] --> [Nginx] --> 静态文件(直接返回)
|
--> [后端服务器集群]
├── Server A (Tomcat)
├── Server B (Tomcat)
└── Server C (Tomcat)
五、适用场景
| 场景 | 说明 |
|---|---|
| 静态网站托管 | 直接 Serve 静态文件,轻量高效 |
| Web 应用前端入口 | 作为统一入口,转发动态请求,处理静态资源 |
| 微服务 API 网关 | 路由、限流、鉴权、日志 |
| 负载均衡 | 分发流量到多台应用服务器 |
| SSL 终结 | 统一处理 HTTPS 加密,减轻后端压力 |
| 缓存加速 | 缓存热点内容,减少后端请求 |
六、与其他 Web 服务器的简单对比
| 产品 | 核心特点 | 适用场景 |
|---|---|---|
| Nginx | 高性能、轻量、反向代理强 | 高并发场景、静态资源、网关 |
| Apache | 模块丰富、.htaccess 支持 | 传统 Web 应用、兼容性要求高 |
| Tomcat | Java Servlet 容器 | Java Web 应用(动态) |
| IIS | Windows 原生集成 | .NET 应用 |
七、一句话总结
Nginx 是当今互联网架构中最常用的流量入口工具——它负责”谁来了往哪送”,以极低的资源消耗支撑起亿万用户的访问。
发表回复