功能特性
- 提供基本HTTP服务,可以作为HTTP代理服务器和反向代理服务器,支持通过缓存加速访问,可以完成简单的负载均衡和容错,支持包过滤功能,支持SSL
- 提供高级的HTTP服务,可以进行自定义配置,支持虚拟主机,支持URI重定向、网络监控、流媒体传输等
- 作为邮件代理服务器,支持IMAP/POP3代理服务功能;支持内部SMTP代理服务
功能详解
基本HTTP服务
- 处理静态文件;处理索引文件以及自动索引
- 打开并自行管理文件描述符缓存
- 提供反向代理服务
- 提供远程FastCGI服务的缓存机制
- 使用Nginx的模块化特性提供过滤器功能。常见的过滤器:gzip压缩、ranges支持、chunked响应、图像缩放
- 支持HTTP下的安全套接层安全协议SSL
高级HTTP服务
- 基于名字和IP的虚拟主机设置
- HTTP/1.0中的keep-allived模式和pipelined模型
- 重新加载配置时,无需终端正在处理的请求
- 自定义访问日志
- 重写
- 错误代码的重定向
- 网络监控
邮件代理
- 允许使用外部的HTTP认证服务器重定向到IMAP/POP3后端
- 支持纯文本的通信协议的扩展协议STARTTLS
常用功能
HTTP代理和反向代理
- 代理类型:正向代理和反向代理。
正向代理的典型模型是翻墙软件的使用,我们直到翻墙软件的存在,也知道外网的地址,但是我们需要通过在VPN的基础上,访问外网。
反向代理:我们只知道目标网站,但是并不知道代理层的存在,代理层的存在可能只有服务端才知道,即使我们客户端知道了代理层的存在,我们也会认为这个代理层就是我们需要访问的服务器。
负载均衡
-
负载均衡的含义:第一种是将单一的重负载分担到多个网络节点上做并行处理,每个节点处理完成后将结果汇总返回用户,提高网络系统的处理能力;第二种是将大量的前端并发访问或者数据流量分担到多个后端网络节点上分别处理,有效减少前端用户的等待时间,Nginx的负载均衡指的是后者。
-
负载均衡策略:内置策略以及外置策略;配置在upstream中。
-
内置策略:轮询(RR round robin)、加权轮询、IP hash。内置策略默认会被编译到Nginx内核;
轮询:将每个前端请求按照顺序逐一分配到不同的后端节点上。
加权轮询:带有权重的轮询。
IP hash :将前端访问IP进行hash,进行均衡请求。
-
外置策略:加载第三方模块,才可以使用;一般分为fair策略、url hash。通过url hash可以解决掉session共享的问题。
-
web缓存
- 实现方式:由Proxy Cache 相关指令集和FastCGI Cache 相关的指令集构成。
- Proxy Cache :用于在Nginx提供反向代理时,对后端服务器返回的内容进行URU 缓存。
- FastCGI:用于对FastCGI动态程序进行缓存。