反向代理服务器“Nginx”的深入解释

发布者:上海IT外包来源:http://www.lanmon.net点击数:882

首先让我们来看看Nginx是什么。
Nginx('engine x')是一个高性能的HTTP和反向代理服务器。它具有更少的内存和更多的并发性。事实上,nginx的并发性确实在同一类型的Web服务器中表现更好。 Nginx网站的用户有:百度,京东,新浪,网易,腾讯,淘宝等。
首先,Nginx不是Web服务器。它的主要功能是三个“反向代理”,“负载均衡”,“动态分离”,然后我们将主要关注这三个功能。说服务器,必须有一个小伙伴可以想到Tomcat,那么Nginx和Tomcat之间有什么关系? Tomcat服务器不是Web服务器,Nginx是代理服务器,两个功能不同,Nginx可以用作静态页面的Web服务器,也支持CGI协议。动态语言,如perl,php等。但不支持java。 Java程序只能通过使用tomcat来完成。所以Nginx和Tomcat是合伙人。
下面我们主要谈谈Nginx的三大功能:
反向代理(即代理服务器)
说到反向代理,那么让我先来看看什么是正向代理。
反向代理服务器“Nginx”的深入解释
转发代理是代理客户端。例如,我们想要访问Google。因为有防火墙,我们无法访问它,但我们可以通过代理服务器访问它。这种方式是前向代理。
什么是反向代理?
反向代理服务器“Nginx”的深入解释
如果我们有一个电子商务网站并且访问量特别大,那么使用一台服务器来处理请求是不够的,所以我们需要使用Nginx来代理我们的服务器并将请求发送到多个服务器进行处理。这称为反向代理。
第二次负载均衡
我们的Nginx会将请求发送到多个服务器,然后Nginx会对应多个服务器。如何将请求分配给这些服务器?这是负载平衡。为了确保每台服务器都正常工作,我们必须做负载均衡,负载均衡有很多策略。 Nginx选择轮询,轮询按顺序分配,分配给服务器1,分配给服务器2,分配给服务器3,分配给服务器1,依此类推。三动静态分离
每个人都知道我们应该能够尽可能地解耦程序。假设程序中的静态资源字段和代码耦合在一起。每次我们更改图片时,我们都需要更改样式的代码。然后发送我们的Nginx。最后,Nginx可以将静态资源与动态资源分开。
反向代理服务器“Nginx”的深入解释
Nginx可以将我们的静态资源存储在文件系统中。当我们需要静态资源时,我们只需要填写静态资源url。当我们更改静态资源时,我们只需要更改文件系统中的静态资源。需要更改我们的代码。
说到Nginx的三个主要功能,让我们来谈谈Nginx的基本原理。
Nginx使用主工作者的机制:
反向代理服务器“Nginx”的深入解释
反向代理服务器“Nginx”的深入解释
首先,对于每个工作进程,不需要锁定独立进程,因此节省了锁的成本,并且在编程和查找问题时也非常方便。其次,可以使用独立过程来防止彼此相互影响。进程退出后,其他进程仍在工作,服务不会中断,主进程会快速启动新的工作进程。当然,工作进程的异常退出肯定是程序中的一个错误。如果程序异常退出,则当前工作程序的所有请求都将失败,但不会影响所有请求,从而降低风险。
当请求过来时,我们会通知我们的主人,主人会通知工人,所有工人都会争夺这个请求,所以Nginx非常有效率。那么我们需要建立多少工人? Nginx使用类似于redis的io多路复用。每个worker都是一个单独的进程,但每个进程中只有一个主线程,由异步非阻塞处理。请求,甚至数千个请求都不是问题。每个worker的线程都可以最大化cpu的性能。因此,服务器的工作者数量和CPU数量是最合适的。如果设置较少,则会浪费cpu。如果设置更多,则会导致cpu频繁切换上下文造成的损失。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部