编程教程说明:
源代码和文档按照两条BSD类许可证分发。
商业支持可从Nginx,Inc.获得。
基本的HTTP服务器功能
提供静态和索引文件,自动索引; 打开文件描述符缓存;
加速反向代理与缓存; 负载均衡和容错;
通过缓存FastCGI,uwsgi,SCGI和memcached服务器来加速支持; 负载均衡和容错;
模块化架构。 过滤器包括gzip,字节范围,分块响应,XSLT,SSI和图像变换过滤器。 如果由代理或FastCGI/uwsgi/SCGI服务器处理,则单页内的多个SSI包含可以并行处理;
SSL和TLS SNI支持;
支持具有加权和依赖关系优先级的HTTP/2。
其他HTTP服务器功能
基于名称和基于IP的虚拟服务器;
保持活动和管道连接的支持;
访问日志格式,缓冲日志写入,快速日志轮换和syslog日志记录;
3xx
-5xx
错误代码重定向;重写模块:使用正则表达式更改URI;
根据客户端地址执行不同的功能;
根据客户端IP地址,密码(HTTP Basic认证)和子请求结果进行访问控制;
HTTP引用的验证
PUT,DELETE,MKCOL,COPY和MOVE方法;
FLV和MP4流媒体;
响应速度限制;
限制来自一个地址的同时连接或请求的数量;
基于IP的地理定位;
A/B测试;
嵌入式Perl
nginScript。
邮件代理服务器功能
使用外部HTTP认证服务器将用户重定向到IMAP或POP3服务器;
使用外部HTTP认证服务器进行用户认证,并将连接重定向到内部SMTP服务器;
认证方式:
POP3:USER / 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;
负载均衡和容错;
基于客户地址的访问控制;
根据客户端地址执行不同的功能;
限制来自一个地址的同时连接数;
访问日志格式,缓冲日志写入,快速日志轮换和syslog日志记录;
基于IP的地理定位;
A/B测试;
nginScript。
架构和可扩展性
一个主和几个工作进程; 工作进程在非特权用户下运行;
灵活配置;
重新配置和升级可执行文件,而不会中断客户端服务;
支持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+);
DIRECTIO(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 — 11 / i386; FreeBSD 5 — 11 / amd64;
Linux 2.2 — 4 / i386; Linux 2.6 — 4 / amd64; Linux 3 — 4 / armv6l, armv7l, aarch64, ppc64le;
Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;
AIX 7.1 / powerpc;
HP-UX 11.31 / ia64;
macOS / ppc, i386;
Windows XP, Windows Server 2003.
Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.
作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。
作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。