什么是Nginx?
Nginx (engine x) 是一个高性能
的HTTP和反向代理
web服务器,同时也提供了IMAP/POP3/SMTP服务,在高并发
的情况下,Nginx是Apache服务器不错的替代品。
某些情况,内网客户端处于安全因素考虑,无法直接请求服务器,只能将请求发往转发代理服务器(简称代理服务器),代理服务器将请求转发给服务器,接收到服务器响应后再将响应转发回客户端。适用于客户端从内部网络访问外部网络时,可能由于防火墙的存在无法直接访问外网,这时需要借助转发代理服务器访问外部网络
客户端无法访问Internet,通过代理服务器进行请求转发;内网用户通过代理访问外网
反向代理服务器用来代理服务器接收客户端请求,对于客户端来说,其感知不到反向代理的存在。考虑到服务器集群的安全,可以将反向代理服务器架设在防火墙外,接收到客户端请求后,反向代理服务器透过防火墙将请求转发到不同的服务器,再将服务器的响应回应给客户端
客户端无法直接访问Web服务器,通过反向代理服务器进行请求转发;外网用户通过代理访问内网
负载均衡可分为软硬件负载均衡,软件负载均衡(LVS、Nginx)和硬件负载均衡(A10、F5)。随着业务不断的增长和用户的不断增多,一台Web服务器已经满足不了系统的要求了。这时候就出现了服务器集群,在这些服务器集群中,Nginx可以将接收到的客户端请求均匀
地分配到集群中的所有服务器上,这就叫做负载均衡
负载均衡还可以通过DNS解析实现,负载均衡能够将客户端的请求均匀地分发到各个Web应用服务器,从而缓解服务器的压力,并且服务器出现宕机和扩容时,也能正常运行。
Nginx默认不支持Fair算法,如果需要使用这种调度算法,需安装upstream_fair模块
Nginix默认不支持这种调度算法,如果需要使用这种调度算法,需安装Nginx的hash软件包
为了加快服务器的解析速度,可以把动态页面和静态页面交给不同的服务器来解析,加快解析速度,降低原来单个服务器的压力
在有些请求中是不需要经过后台处理的,这些不需要经过后台处理的文件称之为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静态分离,我们可以根据静态资源的特点将其做缓存操作。提高响应的速度。
缓存,是Nginx提供的,可以加快访问速度的机制。使用Nginx的http_proxy模块可以实现类似于squid的缓存功能。当启用缓存时,Nginx会将相应的数据保存在磁盘缓存中,只要缓存数据未过期,就会使用缓存数据来响应客户端的请求。