深入浅出反向代理服务器“Nginx”
来源:微云 时间:2022-08-01 09:14:18阅读:0
首先,让我们先了解一下Nginx是什么。
Nginx("enginex")高性能HTTP事实上,反向代理服务器具有内存少、并发能力强的特点nginx在中国大陆使用的同类网页服务器中,并发能力确实很好nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
首先Nginx不是web服务器的主要功能有三个反向代理、负载平衡和动态和静态分离。接下来,我们将主要解释这三个功能。说到服务器,一定有朋友能想到Tomcat,那么Nginx和Tomcat是什么关系?Tomcat服务器不是web服务器,Nginx它是一种不同功能的代理服务器Nginx可作为静态页面使用web还支持服务器CGI例如,协议的动态语言perl、php等等。但不支持java。Java程序只能通过和tomcat合作完成Nginx和Tomcat是合作关系。
让我们主要谈谈Nginx三大功能:
一、反向代理(即代理服务端)
说到反向代理,我们先来看看什么是正向代理。
正代理是代理客户端,以图为例,我们要访问Google,由于防火墙的存在,我们无法访问,但我们可以通过代理服务器访问。这法是积极的代理。
反向代理是什么?
如果我们有一个电商网站,并发访问量特别大,那么仅仅使用一个服务器来处理请求是不够的,所以我们需要使用它Nginx,代理我们的服务器,分别向几个服务器发送请求。这就是所谓的反向代理。
二、负载平衡
我们的Nginx请求会发送到几个服务器,所以Nginx对应几个服务器,如何分配这些服务器的要求,这将提到负载平衡,为了确保每个服务器的正常运行,我们必须做负载平衡,负载平衡有很多策略,Nginx选择轮询,即按顺序分配给服务器1、服务器2、服务器3、服务器1等。
三、动静分离
我们都知道,我们应该尽可能地解耦编写程序。假设静态资源域和代码在我们的程序中耦合在一起,我们需要在每个更改图片和样式时更改代码Nginx派上用场,Nginx静态资源可以与动态资源分离。
Nginx可以将我们的静态资源存在在一个文件系统中,我们需要静态资源的时候,只需要将静态资源的url当我们更改静态资源时,我们只需要更改文件系统中的静态资源,而不需要更改代码。
讲了Nginx我们再来谈谈三大功能Nginx底层原理。
Nginx采用了master-workers的机制:
首先,对每一个worker在这个过程中,独立的过程不需要锁,所以它节省了锁带来的成本。同时,在编程和问题搜索中也要方便得多。其次,采用独立的过程可以防止相互影响。一个过程退出后,其他过程仍在工作,服务不会中断,master新的过程很快就开始了worker过程。worker程序必须有异常退出过程bug异常退出会导致当前worker上述所有请求都失败了,但不会影响所有请求,因此风险降低。
请求过来时,会通知我们master,master会通知worker,所有worker会争夺这个请求,所以Nginx高效率。那我们要设置多少个呢?worker,Nginx同redis使用类似的io多路复用机制,每一个worker这是一个独立的过程,但每个过程只有一个主线程,即使是成千上万来处理请求,即使是成千上万的请求。每一个worker线程可以是一个cpu性能发挥到极致worker数量和服务器cpu数相等是最合适的。少设会浪费cpu,多了会造成cpu频繁切换上下文造成的损失。
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
本站原创内容未经允许不得转载,或转载时需注明出处:https://news.kd010.com/fwqjs/12208.html
TAG标签:代理服务器