Nginx 教程

Nginx 介绍


Nginx(engine-x)是由1994年毕业于俄罗斯国立莫斯科鲍曼技术大学的 Igor Sysoeyv 为俄罗斯访问量居首的 rambler.ru 站点设计开发的。开发工作从2002年开始,第一次正式公开发布是在2004年10月4日,版本号为 0.1.0。Nginx 是一款免费开源的高性能 HTTP 服务器及反向代理服务器(Reverse Proxy)产品,同时,它还可以提供 IMAP/POP3 代理服务等功能。

Nginx 的历史

Nginx 从2004年10月发布到如今,已经趋于成熟和完善。它之所以能够如此快速地发展成为全世界广大 Web 服务器使用者青睐的对象,很重要的一个原因是,它依靠软件开源优势,集合全球技术人员的智慧,快速修复缺陷,更新功能,优化设计。

需要指出的是,Nginx 发布伊始主要针对 Linux 平台。从 Nginx 7.0.69 开始,Nginx 官方开始提供 Windows 版本,版本号与对应 Linux 版本的版本号相同。由于 Windows 平台的 Nginx 在性能和使用广泛程度上不如 Linux 平台的Nginx,因此在影响力方面不如 Linux 平台的 Nginx。

目前,官方将 Nginx 版本分为开发版本(Development version)、稳定版本(Stable version)以及过期版本三种。其中,开发版本主要用于 Nginx 软件项目的研发,稳定版本即可作为 Web 服务器投入商业应用。

Nginx 的功能特性

Nginx 服务器以其功能丰富著称于世。它既可以作为 HTTP 服务器,也可以作为反向代理服务器或者邮件服务器;能够快速响应静态页面(HTML)的请求;支持 FastCGI、SSL、Virtual Host、URL Rewrite、HTTP Basic Auth、Gzip 等大量使用功能;并且支持更多的第三方功能模块的扩展。

Nginx 提供的基本功能服务从大体上归纳为基本 HTTP 服务、高级 HTTP 服务和邮件服务等三大类。

  • Nginx 提供基本 HTTP 服务,可以作为 HTTP 代理服务器和反向代理服务器,支持通过缓存加速访问,可以完成简单的负载均衡和容错,支持包过滤功能,支持 SSL 等。
  • Nginx 提供高级 HTTP 服务,可以进行自定义配置,支持虚拟主机,支持 URL 重定向,支持网络监控,支持流媒体传输等。
  • Nginx 作为邮件代理服务器是最早开发这个产品的目的之一,它支持 IMAP/POP3 代理服务功能,支持内部 SMTP 代理服务功能。

基本 HTTP 服务

在 Nginx 提供的基本 HTTP 服务中,主要包含以下功能特性:

  • 处理静态文件(如 HTML 静态网页及请求);处理索引文件以及支持自动索引。
  • 打开并自行管理文件描述符缓存。
  • 提供反向代理服务,并且可以使用缓存加速反向代理,同时完成简单负载均衡及容错。
  • 提供远程 FastCGI 服务的缓存机制,加速访问,同时完成简单的负载均衡以及容错。
  • 使用 Nginx 的模块化特性提供过滤器功能。Nginx 基本过滤器包括 gzip 压缩、ranges 支持、chunked 响应、XSLT、SSI 以及图像缩放等。其中,针对包含多个 SSI 的页面,经由 FastCGI 或反向代理,SSI 过滤器可以并行处理。
  • 支持 HTTP 下的安全套接层安全协议 SSL。

高级 HTTP 服务

在 Nginx 提供的高级 HTTP 服务中,主要包含以下功能特性:

  • 支持基于名字和 IP 的虚拟主机设置。
  • 支持 HTTP/1.0 中的 KEEP-Alive 模式和管线(PipeLined)模型连接。
  • 支持重新加载配置以及在线升级时,无须中断正在处理的请求。
  • 自定义访问日志格式、带缓存的日志写操作以及快速日志轮转。
  • 提供 3xx ~ 5xx 错误代码重定向功能。
  • 支持重写(Rewrite)模块扩展。
  • 支持 HTTP DAV 模块,从而为 Http WebDAY 提供 PUT、DELETE、MKCOL 、COPY 以及 MOVE 方法。
  • 支持 FLV 流和 MP4 流传输。
  • 支持网络监控,包括基于客户端 IP 地址和 HTTP 基本认证机制的访问控制、速度限制、来自同一地址的同时连接数或请求数限制等。
  • 支持嵌入 Perl 语言。

邮件代理服务

Nginx 提供邮件代理服务也是其基本开发需求之一,主要包含以下功能特性:

  • 支持使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端,并支持 IMAP 认证方式(LOGIN、AUTH LOGIN/PLAINCRAM-MD5)和 POP3 认证方式(USER/PASS、APOP、AUTH LOGIN/PLAINCRAM-MD5 )。
  • 支持使用外部 HTTP 认证服务器认证用户后重定向连接到内部 SMTP 后端,并支持 SMTP 认证方式(AUTH LOGIN/PLAINCRAM-MD5)。
  • 支持邮件代理服务下的安全套接层安全协议 SSL。
  • 支持纯文本通信协议的扩展协议 STARTTLS。