Nginx 简介
官方地址:http://nginx.org/en/
1、什么是 Nginx ?
Nginx (“engine x”) 是一个 HTTP Web 服务器、反向代理、内容缓存、负载均衡器、TCP/UDP 代理服务器和邮件代理服务器。最初由 Igor Sysoev 编写,并根据 2 条 BSD 许可证发布。
Nginx 以其灵活性和高性能以及低资源利用率而闻名:
- 世界上最受欢迎的 Web 服务器 [Netcraft];
- 一直是最受欢迎的 Docker 镜像之一 [DataDog];
- 为 Kubernetes 的多个入口控制器 (包括我们自己的) 提供支持。
企业发行版、商业支持和培训可以从 F5,Inc. 获得。
基本 HTTP 服务器特性
- 提供静态和索引文件,自动索引;开放文件描述符缓存;
- 已加速 使用缓存进行反向代理; 负载均衡 和容错;
- 通过缓存 FastCGI、uwsgi、SCGI 和 memcached 服务器加速支持;负载均衡和容错;
- 模块化架构。过滤器包括 gziping、字节范围、分块响应、XSLT、SSI 和图像变换过滤器。如果由代理或 FastCGI/uwsgi/SCGI 服务器处理,则可以并行处理单个页面中的多个 SSI 包含。
- SSL 和 TLS SNI 支持;
- 支持 HTTP/2 的加权和基于依赖关系的优先级划分;
- HTTP/3 支持。
其他 HTTP 服务器特性
- 基于名称和基于 IP 的虚拟服务器;
- 支持保持连接活跃和流水线连接;
- 访问日志格式、缓冲日志写入、快速日志轮换和系统日志记录;
- 3xx-5xx 错误代码重定向;
- 重写模块:使用正则表达式修改 URI;
- 根据客户端 IP 地址执行不同的功能;
- 基于客户端 IP 地址、密码 (HTTP 基本认证) 和子请求结果的访问控制;
- HTTP 引用的验证;
- PUT、DELETE、MKCOL、COPY 和 MOVE 方法;
- FLV 和 MP4 流式传输;
- 响应速率限制;
- 限制来自同一地址的同时连接或请求数量;
- 基于 IP 的地理定位;
- A/B 测试;
- 请求镜像;
- 嵌入式 Perl;
- Njs 脚本语言。
邮件代理服务器特性
- 用户使用外部 HTTP 身份验证服务器重定向到 IMAP 或 POP3 服务器;
- 使用外部 HTTP 认证服务器进行用户认证,并将连接重定向到内部 SMTP 服务器;
- 认证方法:
- POP3: 用户 / PASS、APOP、AUTH LOGIN/PLAIN/CRAM-MD5;
- IMAP:LOGIN、AUTH LOGIN/PLAIN/CRAM-MD5;
- SMTP:AUTH LOGIN/PLAIN/CRAM-MD5;
- SSL 支持;
- 支持 STARTTLS 和 STLS。
TCP/UDP 代理服务器特性
- TCP 和 UDP 的通用代理;
- SSL 和 TLS SNI 对 TCP 的支持;
- 负载均衡 和容错;
- 基于客户端地址的访问控制;
- 根据客户端 IP 地址执行不同的功能;
- 限制来自同一地址的同时连接数量;
- 访问日志格式、缓冲日志写入、快速日志轮换和系统日志记录;
- 基于 IP 的地理定位;
- A/B 测试;
- Njs 脚本语言。
架构和可扩展性
- 一个主进程和多个工作进程;工作进程在非特权用户下运行;
- 灵活配置;
- 在不中断客户端服务的情况下重新配置和升级可执行文件;
- 支持 kqueue (FreeBSD 4.1+)、epoll (Linux 2.6+)、/dev/poll (Solaris 7 11/99+)、事件端口 (Solaris 10)、select 和 poll;
- 支持各种 kqueue 功能,包括 EV_CLEAR、EV_DISABLE (用于临时禁用事件)、NOTE_LOWAT、EV_EOF、可用数据数量、错误代码;
- 支持各种 epoll 功能,包括 EPOLLRDHUP (Linux 2.6.17+、glibc 2.8+) 和 EPOLLEXCLUSIVE (Linux 4.5+、glibc 2.24+);
- Sendfile (FreeBSD 3.1+、Linux 2.2+、macOS 10.5+)、sendfile64 (Linux 2.4.21+) 和 sendfilev (Solaris 8 7/01+) 支持;
- AIO 文件 (FreeBSD 4.3+、Linux 2.6.22+);
- 指令 (FreeBSD 4.4+、Linux 2.4+、Solaris 2.6+、macOS);
- 支持接受过滤器 (FreeBSD 4.1+、NetBSD 5.0+) 和 TCP_DEFER_ACCEPT (Linux 2.4+);
- 10,000 个非活动 HTTP 保持连接占用约 2.5M 内存;
- 数据复制操作被保持在最低限度。
经过测试的操作系统和平台
- FreeBSD 3-12 / i386;FreeBSD 5-12 / amd64;FreeBSD 11 / ppc;FreeBSD 12 / ppc64;
- Linux 2.2-4/i386;Linux 2.6-5/amd64;Linux 3-4/armv6l、armv7l、aarch64、ppc64le;Linux 4-5/s390x;
- Solaris 9 / i386,sun4u;Solaris 10 / i386,amd64,sun4v;Solaris 11 / x86;
- AIX 7.1 / powerpc;
- HP-UX 11.31 / ia64;
- MacOS / ppc,i386,x86_64;
- Windows XP、Windows Server 2003、Windows 7、Windows 10、Windows 11。
作者:Jeebiz 创建时间:2025-11-04 14:39
最后编辑:Jeebiz 更新时间:2025-11-04 17:25
最后编辑:Jeebiz 更新时间:2025-11-04 17:25