竹笋

首页 » 问答 » 灌水 » Nginx配置原理学习
TUhjnbcbe - 2022/2/17 15:20:00
白癜风发病机理 http://m.39.net/pf/a_6192730.html
Nginx基本概念定义

Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名

Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是在BSD-like协议下发行。其特点是占有内存小,并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好

Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,支持高达个并发连接数

反向代理正向代理定义

一般的访问流程是客户端直接访向目标服务器发送请求并获取内容,使用正向代理后,客户端改为向代理服务器发送请求,并指定目标服务器(原始服务器)然后有代理服务器和原始服务器通信,转交请求并获得内容,再返回给客户端。正向代理隐藏了真实的客户端,为客户端收发请求,使真实客户端对服务器不可见

举例:浏览器无法访问谷歌,这时候可以通过一个代理服务器来帮助你访问谷歌,这个服务器就叫正向代理  

反向代理定义

与一般流程相比,使用反向代理后,直接收到请求的服务器是代理服务器,然后将请求转发给内部网络上真正进行处理的服务器,得到的结果返回给客户端。反向代理隐藏了真实的服务器,为服务器收发请求,使真实的服务器对客户端不可见,一般在处理跨域请求的时候比较常用

举例:饭店吃饭,可以点川菜、粤菜、江浙菜,饭店也分别有三个菜系的厨师?????,但是你作为顾客不用管哪个厨师给你做的菜,只用点菜即可,小二将你菜单中的菜分配给不同的厨师来具体处理,那么这个小二就是反向代理服务器

简单来说,一般给客户端做代理的都是正向代理,给服务器做代理的就是反向代理

使用反向代理的优点

反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和web服务器之间的中间层。这对于安全方面来说是很好的,特别是当您使用web托管服务时

负载均衡

一般情况下,客户端发送多个请求到服务器,服务器处理请求,其中一部分可能要操作一些资源比如数据库、静态资源等,服务器处理完毕后,再将结果返给客户端

这种模式对于早起的系统来说,功能要求不复杂,且并发请求相对较少的情况下还能胜任,成本也低。随着信息数量不断增长,访问量和数据量飞速增长,以及系统业务复杂度持续增加,这种做法已无法满足要求,并发量特别大时,服务器容易崩

请求爆发式增长的情况下,单个机器性能再强劲也无法满足要求了,这个时候集群的概念产生了,单个服务器解决不了的问题,可以使用多个服务器,然后将请求分发到各个服务器上,将负载分发到不同的服务器上,这就是负载均衡,核心是「分摊压力」。Nginx实现负载均衡,一般来说指的是将请求转发给服务器集群

负载均衡算法怎么实现的

为了避免服务器崩溃,通过负载均衡的方式来分担服务器的压力,将多态服务器组成一个集群,当用户访问时,先访问到一个转发服务器,再由转发服务器将访问分发到压力刚小的服务器

负载均衡策略轮询

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某个服务器宕机,能自动剔除故障系统

upstreammyserver{server.0.0.1:;server.0.0.1:;}权重

weight的值越大分配

到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。其次是为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。

upstreammyserver{server.0.0.1:weight=8;server.0.0.1:weight=2;}

权重越高,在被访问的概率越大,如上例,分别是20%,80%。

ip_hash(IP绑定)

每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题

upstreammyserver{ip_hashserver.0.0.1:;server.0.0.1:;}fair(第三方插件)

必须安装upstream_fair模块

对比weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,响应时间短的优先分配

哪个服务器的响应速度快,就将请求分配到那个服务器上

upstreammyserver{server.0.0.1:;server.0.0.1:;fair}url_hash(第三方插件)

必须安装Nginx的hash软件包

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率

动静分离

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

一般来说,都需要将动态资源和静态资源分开,由于Nginx的高并发和静态资源缓存等特性,经常将静态资源部署在Nginx上,如果请求的是静态资源,直接到静态资源目录获取资源,如果是动态资源的请求,则利用反向代理的原理,把请求转发给对应后台应用去处理,从而实现动静分离

使用前后端分离后,可以很大程度提升静态资源的访问速度,即使动态服务不可用,静态资源的访问也不会受到影响。

Nginx的优缺点优点

占用内存小,可以实现高并发连接,处理响应快

可实现

1
查看完整版本: Nginx配置原理学习