什么是 Nginx?它的主要特点是什么?
Nginx 是一个高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/POP3 代理服务器。它由 Igor Sysoev 开发,最初发布于2004年,旨在解决 C10k 问题,即同时处理大量客户端连接的需求。
Nginx 的主要特点:
- 高性能:采用事件驱动架构,能够处理数以万计的并发连接,内存占用低
- 稳定性强:在高并发环境下表现稳定,能够长时间运行而不崩溃
- 反向代理:可以作为反向代理服务器,将请求转发到后端服务器
- 负载均衡:支持多种负载均衡算法,如轮询、最少连接、IP 哈希等
- 静态文件服务:高效地提供静态文件服务,如 HTML、CSS、JavaScript、图片等
- 缓存功能:支持 FastCGI、uWSGI、SCGI、memcached 等缓存
- SSL/TLS 支持:支持 HTTPS 协议,可以配置 SSL 证书
- 模块化设计:通过模块扩展功能,支持第三方模块
- 热部署:支持在不中断服务的情况下重新加载配置
- 跨平台:支持 Linux、Windows、macOS 等多种操作系统
与 Apache 的区别:
- Nginx 采用事件驱动、非阻塞 I/O 模型,Apache 采用进程/线程模型
- Nginx 在高并发场景下性能更好,资源消耗更低
- Apache 模块更丰富,动态处理能力更强
- Nginx 配置相对简单,学习曲线较平缓
适用场景:
- 高并发 Web 服务器
- 反向代理服务器
- 负载均衡器
- 静态资源服务器
- API 网关
- WebSocket 代理