1.1 Nginx概述
Nginx(engine x)同Apache、Tomcat一样是一种服务器软件。它是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。因此,Nginx可以发布网站,也可以实现负载均衡的功能,还可以作为邮件代理服务器来接收和发送邮件。在1.9.0版本后,Nginx还可以做一个通用的TCP/UDP代理服务器。Nginx同时也可以提供一定的缓存服务功能。
1.1.1 可做WEB服务器
Nginx是一个高性能的HTTP WEB服务器(WEB服务器还有Apache、IIS等),它包含了基本HTTP功能和拓展功能。可以先通过动态/静态内容分离,而后为静态内容(html/css/js/图片等)提供HTTP访问功能;而动态内容可以整合代理模块,代理给上游服务器,来支持对外部程序的直接调用或者解析,如FastCGI支持PHP。
1.1.2 可做反向代理服务器
代理服务器可分为正向代理服务器和反向代理服务器。
1.正向代理
正向代理服务器是一个位于客户端与原始服务器之间的服务器。为了从原始服务器取得数据,客户端向代理服务器发送请求并指定目标(原始服务器),然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。
正向代理服务器一般作用在客户端,客户端需要进行相关配置,如图1-1所示。
图1-1
2.反向代理
反向代理服务器作用在服务端,它在服务器端接收Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端。
反向代理对外是透明的,客户端不需要任何配置,所以访问者并不知道自己访问的是一个代理,如图1-2所示。
图1-2
Nginx就是一个反向代理服务器。
反向代理是针对WEB服务器提高加速功能,所有外部网络要访问服务器时的所有请求都要通过它,这样反向代理服务器负责接收客户端的请求,然后到源服务器上获取内容,把内容返回给用户,并把内容保存在本地,以便日后再收到同样的信息请求时,它会将本地缓存里的内容直接发给用户,已减少后端WEB服务器的压力,提高响应速度。因此Nginx还具有缓存功能。
3.反向代理实现负载均衡
Nginx可通过反向代理来实现负载均衡,来优化网站的负载,如图1-3所示。
图1-3
1.1.3 可做邮件代理服务器
Nginx可部署成邮件代理服务器,最早开发这个产品的目的之一也是作为邮件代理服务器。