商店
NGINX
0
2004年10月4日
概述
Nginx(发音为 "engine-x")是一个开源的 Web 服务器软件,同时也可作为反向代理、负载均衡器、邮件代理和 HTTP 缓存服务器。它由俄罗斯开发者 Igor Sysoev 创建,于 2004 年首次发布,旨在解决传统 Web 服务器(如 Apache)的效率问题,提供高性能和低资源消耗的解决方案。Nginx 使用模块化架构,支持异步事件驱动模型,能够处理数千个并发连接,而不依赖线程或进程模型。它适用于 Linux、Windows、macOS 和 FreeBSD 等平台,支持 x86_64 和 arm64 架构,广泛用于静态内容服务、API 网关和微服务环境。Nginx 由 Nginx Inc.(现 F5 公司所有)维护,提供开源版和商业版(Nginx Plus),支持 QUIC/HTTP/3 和增强负载均衡。
历史与发展
- 起源:
- 2002年:Igor Sysoev 开始开发 Nginx,以解决 Apache 在高并发下的性能瓶颈,当时他在 Rambler 公司工作。
- 发展历程:
- 2004年:Nginx 首次公开发布,版本 0.1.0,作为 Rambler 的内部工具,用于处理高流量网站。
- 2006年:Nginx 0.5 引入模块化架构,支持异步事件驱动。
- 2011年:成立 Nginx Inc.,提供商业支持,Nginx 1.0 发布,支持 SPDY(HTTP/2 前身)。
- 2019年:F5 Networks 收购 Nginx Inc.,开源版继续维护。
- 2021年:Nginx 1.21 支持 QUIC/HTTP/3。
- 2025年:Nginx 1.27.3 发布,优化负载均衡和安全性,支持 WASM 模块。
- 社区与支持:
- 由 F5 Nginx 团队维护,托管于 nginx.org、GitHub 和论坛(community.nginx.com)。
- 支持英语和多语言(中文通过社区翻译),文档全面(docs.nginx.com)。
- Reddit 用户称“Nginx 是 Web 服务器的黄金标准”。
- 开源许可:
- 2-Clause BSD License,允许商业使用和修改。
主要特点
Nginx 以高性能、模块化和多功能为核心,适合 Web 服务器和代理场景。以下是其主要特点:
- 事件驱动架构
- 使用异步、非阻塞事件驱动模型,一个进程可处理数千个连接。
- 模块化设计
- 支持动态加载模块,如 HTTP/2、SSL/TLS、gzip 压缩。
- 反向代理和负载均衡
- 支持反向代理(proxy_pass)和负载均衡(upstream)。
- HTTP/3 和 QUIC 支持
- 支持 HTTP/3 和 QUIC 协议,提高速度和安全性。
- 缓存和压缩
- 支持 HTTP 缓存(proxy_cache)和 gzip 压缩(gzip on)。
- 性能与硬件支持
- 支持 x86_64 和 arm64,占用 50-200 MB RAM。
- 安全与隐私
- 支持 SSL/TLS、HTTP/2 和访问控制。
优势与局限性
优势
- 高性能:
- 处理 10,000+ 并发连接,优于 Apache。
- X 帖子称“Nginx 的事件驱动让服务器更高效”。
- 模块化:
- 灵活扩展,适合自定义配置。
- 多功能:
- Web 服务器、代理、负载均衡于一身。
- 开源免费:
- 2-Clause BSD License,支持商业使用。
- 社区支持:
- 活跃社区和文档。
局限性
- 配置复杂:
- 学习曲线陡峭,不如 Apache 的 .htaccess。
- 解决:使用 Nginx 配置生成器。
- 动态内容弱:
- 适合静态内容,反向代理动态应用需额外配置。
- 对比服务器:
- Apache:模块丰富,.htaccess 支持。
- Lighttpd:轻量,适合嵌入式。
- Caddy:自动 HTTPS。
总结
Nginx 是一个免费、开源的高性能 Web 服务器、反向代理和负载均衡器。它以事件驱动架构、模块化和高效著称,Nginx 的性能和模块化突出,但配置复杂。