1.1 Nginx概述及作用

Nginx同Apache、Tomcat一样,是一种服务器软件。它是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。因此,使用Nginx可以搭建网站,也可以实现负载均衡的功能,还可以作为邮件代理服务器来接收和发送邮件。Nginx 1.9.0以后的版本还可以作为通用的TCP/UDP代理服务器,也可以提供一定的缓存服务功能。

1.1.1 可作为Web服务器

Nginx还是一个高性能的HTTP Web服务器(Web服务器还有Apache、IIS等),它包含了基本的HTTP功能和拓展功能,可以先通过动态/静态内容分离,而后为静态内容(HTML/CSS/JaveScript/图片等)提供HTTP访问功能;而动态内容可以整合代理模块,代理给上游服务器,以支持对外部程序的直接调用或者解析,如FastCGI支持PHP。

1.1.2 可作为反向代理服务器

代理服务器分为正向代理服务器和反向代理服务器。

1.正向代理服务器

正向代理服务器是一个位于客户端与原始服务器之间的服务器。为了从原始服务器中取得数据,客户端向代理服务器发送请求并指定目标(原始服务器),然后,代理服务器向原始服务器转交请求,并将获得的内容返回客户端。

正向代理服务器一般作用在客户端,并且在客户端需要进行相关配置,如图1-1所示。

图1-1

2.反向代理服务器

反向代理服务器作用在服务器端,它在服务器端接收互联网中的连接请求,然后将请求转发给内部网络中的服务器,并将从服务器中得到的结果返回给互联网中请求连接的客户端,如图1-2所示。

反向代理对外是透明的,在客户端不需要任何配置,所以,访问者并不知道自己访问的是一个反向代理服务器。

图1-2

Nginx就是一个反向代理服务器。

反向代理服务器针对Web服务器提供加速功能,所有外部网络要访问服务器的请求都要通过它。反向代理服务器负责接收客户端的请求,然后到源服务器上获取内容,把内容返回给用户,并把内容保存在本地中,以便日后再收到同样的信息请求时,将本地缓存中的内容直接发给用户,以减少后端Web服务器的压力,提高响应速度。因此,Nginx还具有缓存功能。

3.反向代理服务器实现负载均衡

Nginx可通过反向代理服务器来实现负载均衡,以优化网站的负载,如图1-3所示。

图1-3

1.1.3 可作为邮件代理服务器

Nginx可被部署成邮件代理服务器,最早开发Nginx的目的之一就是将其作为邮件代理服务器。