河南网站seo优化,wordpress 增加域名,浦东新区消息今天,微信有哪些不正经的公众号目录 Ngnix是什么#xff0c;它是用来做什么的呢#xff1f; 一。Nginx简介 二#xff0c;为什么要用Nginx呢#xff1f; 二。Nginx应用 1.HTTP代理和反向代理 2.负载均衡 Ngnix是什么#xff0c;它是用来做什么的呢#xff1f; 一。Nginx简介
Nginx是enginex的简写它是用来做什么的呢 一。Nginx简介 二为什么要用Nginx呢 二。Nginx应用 1.HTTP代理和反向代理 2.负载均衡 Ngnix是什么它是用来做什么的呢 一。Nginx简介
Nginx是enginex的简写是一款很优秀的开源的高性能HTTP和反向代理服务器,由于它是用C语言写的所以速度非常快性能非常优秀它主要功能就是反向代理负载均衡配置SSL证书防盗链解决跨域问题缓存限流动静资源分离等等
Nginx是一款轻量级的高性能的代理Web服务器作为一个很强大的高性能Web和反向代理服务器它具有很多优秀的特性Nginx更轻巧处理的并发数更大(Nginx的并发性在同类型的服务其中表现很好)中国用户使用的很多比如 百度京东网易腾讯淘宝等互联网大厂对HTTP并发连接的高处理能力单台服务器通常可以处理三万到六万个并发请求单个链接占用的内存小通常较多用于处理静态页面和反向代理服务。
Nginx和Apache都采用模范化的结构设计在连接高并发的情况下Nginx是Apache服务不错的代理品:Apache的下载包很大而Nginx的下载包很小现在的版本大概只有几兆的大小安装非常方便。能支持最大60000个并发连接数这是他无与伦比的优势。
上面介绍了Nginx是一台Web服务器实际上它并不是一台真正意义上的物理服务器并不是主观真实存在的实体它是运行在某台服务器(电脑上的软件。
那为什么还说它是一台Web服务器呢
我们先来理解一下什么事网关大家都知道从一个房间进入另一个房间内必须经过一个门就像经过一个“关口”那么从一个网络发送一个消息到另一个网络也必须经过一个关口这个关口就可以说是网关。这个关口并不是摆在那里那么简单关口可以自行决定允不允许让你的消息通过或者决定是否替你转发和接收消息把消息分发给其他人或者帮你的消息添加和需处理一些消息或者替你回答消息等等功能。
而Nginx就相当于这个网关转发和接收消息就相当于反向代理把消息分给其他人就相当于负载均衡。当我们的服务器电脑上安装了Nginx这个软件通过一些简单的配置并运行这个软件我们在服务器上运行的项目(例如java程序)在接收HTTP请求的时候这个请求就会被Nginx这个网关先拦截经过一些上述的处理之后再交给Java程序此时Nginx就充当了一个网关。因为外网用户的所有请求都会先经过Nginx所以对于外网的用户来说他们的请求都是发送给Nginx的再由Nginx发送给java程序处理后再发还给用户那么从用户的角度来看Nginx就相当于一台服务器在接收和回复用户发送的消息所以也可以理解为Nginx是一台Web服务器。
二为什么要用Nginx呢
Nginx跨平台配置简单。我们可以在linux和windows系统上都开启Nginx服务配置也非常简单
在linux上我们通常只需要修改三四行代码就可以完成项目的配置当后端程序重构或者重新部署例如Java项目换成go项目也不需要修改Nginx。
Nginx是由C语言写的速度非常快性能很优越。目前公认的性能最高的后端语言就是C和C,而Nginx就是由C语言写的和编译的其单机开发量非常高可以达到5w,而一般的后端Java程序并没有这么高的并发量所以一般都会选择Nginx当网关放在Java程序之前提高系统的整体性能。
动静资源分离一般公司的前后端一般静态资源都会放到Nginx分离项目用户想获取前端静态资源文件都得先经过后端Java程序的接口再获取服务器上的静态资源文件这样的效率并不是很高而且会占用正常程序接口连接数量这时候Nginx的动静资源分离功能就提供了很好的解决方法一般的静态资源文件都会放到Nginx服务器中。当Nginx接收到了获取静态资源的请求就直接在Nginx服务器中把放进去的静态资源返回了而不用真正到达后端接口这个效率是非常高的比正常的访问速度会快一倍左右。
在并发量较大的项目中后端往往会开启多个相同的Java服务来缓解单服务的压力我们知道每个Java服务程序都会占用一个端口那前端在后端接口的时候怎么知道选择哪个接口呢这个时候就可以在所有的Java程序前放置一个Nginx程序所有的请求都会经过Nginx由Nginx决定分发到哪个端口程序上虽然后端有很多个Java程序但对于前端来说是无感知的就好像后台只有一个项目再跑。
二。Nginx应用
1.HTTP代理和反向代理
正向代理有点像NAT网络结构用户通过网关请求访问网站网关服务器负责和外网服务器对接请求访问并返回结果
而反向代理则是用代理服务器来接受客户端的访问请求然后服务器将请求有策略的转发给正在实际工作中的业务服务器并将从业务服务器的处理的结果返回给客户端。 2.负载均衡
负载均衡建立在现有的网络结构之上他提供了一种廉价有效透明的方法扩展网络设备和服务器的宽带增加吞吐量加强网络数据的处理能力提高网络的灵活性和可用性
它利用一些反向代理功能加算法策略达到我们想要访问的目的
负载均衡的策略主要有轮询加权轮询IP hash
轮询
假如有三台服务器和三台客户端第一次访问时第一个服务器接受请求第二次访问时第二台服务器接受请求第三次访问时第三台服务器接受请求。。。。以此类推按次序分配。
加权轮询
对接受的请求做一个加权分配配置高的服务器承担的请求多一点配置低的接受的请求少一点。假如第二台服务器是第一台服务器的两倍单位时间里可以让第二台服务器执行两次第一台执行一次
IP hash:
是对客户端请求的ip进行hash散列算法操作然后根据hash结果将同一客户端的ip请求分发给同一台服务器进行处理可以解决session不共享的问题