Nginx教程

Nginx概念

本文主要是介绍Nginx概念,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Nginx概念

概念

什么是Nginx?

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,在高并发的情况下,Nginx是Apache服务器不错的替代品。

正向代理

某些情况,内网客户端处于安全因素考虑,无法直接请求服务器,只能将请求发往转发代理服务器(简称代理服务器),代理服务器将请求转发给服务器,接收到服务器响应后再将响应转发回客户端。适用于客户端从内部网络访问外部网络时,可能由于防火墙的存在无法直接访问外网,这时需要借助转发代理服务器访问外部网络

客户端无法访问Internet,通过代理服务器进行请求转发;内网用户通过代理访问外网

反向代理

反向代理服务器用来代理服务器接收客户端请求,对于客户端来说,其感知不到反向代理的存在。考虑到服务器集群的安全,可以将反向代理服务器架设在防火墙外,接收到客户端请求后,反向代理服务器透过防火墙将请求转发到不同的服务器,再将服务器的响应回应给客户端

客户端无法直接访问Web服务器,通过反向代理服务器进行请求转发;外网用户通过代理访问内网

负载均衡

负载均衡可分为软硬件负载均衡,软件负载均衡(LVS、Nginx)和硬件负载均衡(A10、F5)。随着业务不断的增长和用户的不断增多,一台Web服务器已经满足不了系统的要求了。这时候就出现了服务器集群,在这些服务器集群中,Nginx可以将接收到的客户端请求均匀地分配到集群中的所有服务器上,这就叫做负载均衡

负载均衡还可以通过DNS解析实现,负载均衡能够将客户端的请求均匀地分发到各个Web应用服务器,从而缓解服务器的压力,并且服务器出现宕机和扩容时,也能正常运行。

轮询

  • Weight轮询(默认):接收到的请求按照顺序逐一分配到不同的服务器,即使在使用过程中,某一台服务器宕机,Nginx会自动将该服务器剔除队列,请求受理情况不会受到如何影响。

加权轮询

  • 权重值,用于调整不同的服务器上请求的分配率。权重数值越大,被分配到请求的几率越大;权重值主要是根据实际生产环境中不同的服务器硬件性能进行调整。

IP_HASH

  • 每个请求按照发起客户端的IP的HASH结果进行匹配,这样的算法下固定的IP地址的客户端总会访问到同一个服务器,这也在一定程度上解决了集群部署环境下会话(Session)共享的问题

Fair

Nginx默认不支持Fair算法,如果需要使用这种调度算法,需安装upstream_fair模块

  • 智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均匀的分配。响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少。

URL_HASH

Nginix默认不支持这种调度算法,如果需要使用这种调度算法,需安装Nginx的hash软件包

  • 按照访问的URL的HASH结果分配请求,每个请求的URL会指向固定的某个服务器,可以在Nginx作为静态服务器的情况下提高缓存效率。

动静分离

为了加快服务器的解析速度,可以把动态页面和静态页面交给不同的服务器来解析,加快解析速度,降低原来单个服务器的压力

在有些请求中是不需要经过后台处理的,这些不需要经过后台处理的文件称之为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静态分离,我们可以根据静态资源的特点将其做缓存操作。提高响应的速度。

缓存

缓存,是Nginx提供的,可以加快访问速度的机制。使用Nginx的http_proxy模块可以实现类似于squid的缓存功能。当启用缓存时,Nginx会将相应的数据保存在磁盘缓存中,只要缓存数据未过期,就会使用缓存数据来响应客户端的请求。

这篇关于Nginx概念的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!