Nginx基础知识

2023-01-05 0 806

1、Nginx 简述

Nginx (“engine x”) 是两个高效能的 HTTP 和逆向全权伺服器,特征是占据缓存少,mammalian潜能强,实际上

nginx 的mammalian潜能的确在同类型的页面伺服器中整体表现良好,我国内地采用 nginx 中文网站采用者有:腾讯、京

东、新浪、网易、腾讯、淘宝网等

(1)Nginx是两个高效能的HTTP和路径全权伺服器

(2)选用C词汇撰写

(3)全力支持的作业系统为数众多,windows、linux、MacOS X

(4)可靠性高,外间根本无法出访nginx所处伺服器,nginx将允诺转贴外部伺服器。初始化后,回到初始化的

结论

(5)可与此同时实现阻抗平衡

(6)Rewrite采用方便

2、Nginx做为 web 伺服器

Nginx 能做为静态页面的 web 伺服器,与此同时还全力支持 CGI 协定的静态词汇,比如说 perl、php等。但

不全力支持 java。Java 流程根本无法透过与 tomcat 相互配合顺利完成。Nginx 专为操控性强化而合作开发,操控性是其最重要的

权衡,与此同时实现上十分著重工作效率 ,能抵挡高阻抗的挑战,有调查报告说明能全力支持高达 50,000 个mammalian通话量。

3、萨德基全权

Nginx 不但能做逆向全权,与此同时实现阻抗平衡。还能用于萨德基全权来展开玩游戏等机能。

萨德基全权:假如把以太网外的 Internet 想像成两个十分大的深外,则以太网中的应用流程要访

问 Internet,则需要透过全权伺服器来出访,这种全权服务就称为萨德基全权

Nginx基础知识

(1)需要在客户端配置全权伺服器展开指定中文网站出访 )需要在应用流程配置全权伺服器展开指定中文网站访

问 )需要在应用流程配置全权伺服器展开指定中文网站出访 )

Nginx基础知识

4、逆向全权

逆向全权,其实应用流程对全权是无感知的,因为应用流程不需要任何配置就能出访,我们只需要将允诺

全权伺服器和目标伺服器对外就是两个伺服器,暴露的是全权伺服器地址,隐藏了真实服务器 IP 地

址。

暴露的是全权伺服器 地址,隐藏了真实暴露的是全权伺服器 地址,隐藏了真实暴露的是全权伺服器 地

址,隐藏了真实IP地址

Nginx基础知识

在实际项目合作开发中,运用最多的也是路径全权,这里就示范下:

1、在本机下载tomacat,运行起来

Nginx基础知识

2、修改nginx配置文件,在默认的80端口的配置下,增加location配置并保存

Nginx基础知识

3、重启nginx服务

4、分别在虚拟机外部和宿主机出访nginx的80端口

Nginx基础知识

5、在宿主机(安装VMware的机器)上出访nginx的80端口

Nginx基础知识

5、阻抗平衡

应用流程发送多个允诺到伺服器,伺服器处理允诺,有一些可能要与数据库展开交互,伺服器处理完毕

后,再将结论回到给应用流程。

这种架构模式对于早期的系统相对单一,mammalian允诺相对较少的情况下是比较适合的,成本也低。但随

着信息数量的不断增长,出访量和数据量的飞速增长,以及系统业务的复杂度增加,这种架构会造成服

务器相应应用流程的允诺日益缓慢,mammalian量特别大的时候,还容易造成伺服器直接崩溃。很明显这是由于

伺服器操控性的瓶颈造成的问题,那么如何解决这种情况呢?

我们首先想到的可能是升级伺服器的配置,比如说提高 CPU 执行频率,加大缓存等提高机器的物理操控性

来解决此问题,但我们知道摩尔定律的日益失效,硬件的操控性提升已经不能满足日益提升的需求了。

最明显的两个例子,天猫双十一当天,某个热销商品的瞬时出访量是极其庞大的,那么类似上面的系统

架构,将机器都增加到现有的顶级物理配置,都是不能够满足需求的。那么怎么办呢?

上面的分析我们去掉了增加伺服器物理配置来解决问题的办法,也就是说纵向解决问题的办法行不通

了,那么横向增加伺服器的数量呢?这时候集群的概念产生了,单个服务器解决不了,我们增加伺服器

的数量,然后将允诺分发到各个伺服器上,将原先允诺集中到单个伺服器上的情况改为将允诺分发到多

个伺服器上,将阻抗分发到不同的伺服器,也就是我们所说的阻抗平衡。

Nginx基础知识

设置阻抗平衡之后,tomcat的session,会发生不存再的情况,解决办法

1.最简单,不常用

存储在cookie中

2.常用

存放再redis中

5.1、ip_hash(透过应用流程允诺ip展开hash,再透过hash值选择后端server):

当你服务端的两个特定url路径会被同两个采用者连续出访时,假如阻抗平衡策略还是轮询的话,那该采用者

的多次出访会被打到各台伺服器上,这显然并不高效(会建立多次http链接等问题)。

甚至考虑一种极端情况,采用者需要分片上传文件到伺服器下,然后再由伺服器将分片合并,这时假如用

户的允诺到达了不同的伺服器,那么分片将存储于不同的伺服器目录中,导致无法将分片合并。所以,

此类场景能考虑选用nginx提供的ip_hash策略。既能满足每个采用者允诺到同一台伺服器,又能满足不

同采用者之间阻抗平衡。

Nginx基础知识

5.2、url_hash(透过允诺url展开hash,再透过hash值选择后端server):

一般来讲,要用到url_hash,是要相互配合缓存命中来采用。

举两个我遇到的实例:有两个伺服器集群A,需要对外提供文件下载,由于文件上传量十分大,没法存储

到伺服器磁盘中,所以用到了第三方云存储来做文件存储。伺服器集群A收到应用流程允诺之后,需要从

云存储中下载文件然后回到,为了省去不必要的网络带宽和下载耗时,在伺服器集群A上做了一层临时

缓存(缓存两个月)。

由于是伺服器集群,所以同两个资源多次允诺,可能会到达不同的伺服器上,导致不必要的多次下载,

缓存命中率不高,以及一些资源时间的浪费。在此类场景下,为了使得缓存命中率提高,很适合采用

url_hash策略,同两个url(也就是同两个资源允诺)会到达同一台机器,一旦缓存住了资源,再此收到请

求,就能从缓存中读取,既减少了带宽,也减少的下载时间。

Nginx基础知识

6、 动静分离为了加快中文网站的解析速度,能把静态页面和静态页面由不同的伺服器来解析,加快解析速度。降低原

来单个伺服器的压力。

Nginx基础知识
Nginx基础知识

总结:

Nginx是目前比较主流的HTTP逆向全权伺服器(其企业版提供了基于TCP层的逆向全权插件),对于构

建大型分布式web应用,具有举足轻重的作用。简单来说,nginx有2个主要的机能:动/静态资源分

离、阻抗平衡。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务