说明:

(1)本篇博客简单介绍Nginx是什么,使用场景,有什么有点;

目录

1.Nginx官网; 

2.Nginx适用场景;

(1)Nginx主要适用场景1:反向代理服务器;

(2)Nginx主要适用场景2:静态资源服务器(即动态、静态资源分离);

3.Nginx优点; 


Nginx虽然是个老技术,但是其真正流行起来也没有很旧;(PS:Nginx诞生在俄罗斯)

1.Nginx官网; 

可以进入Nginx官网【nginx.org】

nginx自签名 nginx简书_服务器

nginx自签名 nginx简书_nginx_02

2.Nginx适用场景;

Nginx主要有两种使用场景:(1)反向代理服务器;(2)静态资源服务器(即动态、静态资源分离);

(1)Nginx主要适用场景1:反向代理服务器;

(1.1)正向代理:

nginx自签名 nginx简书_nginx_03

说明:

         ● 比如某公司有100人,然后这100个人上网的时候,公司可能会对这100个人做一个统一的代理;;;那么,网络就有一个统一的出口;即,不管这100个人的IP是什么,经过代理之后,对外是有统一出口的;也就是,这100个人访问外网,从外面看来,都是来自同一个地方;

         ● 有时我们也会主动设置一个代理,来改变我们的IP;;;比如,A网站把小李的IP给封了,那么为了解决这个问题,小李可以去找一个代理服务器,通过这个代理服务器来转发;即,此时小李再通过代理服务器访问A网站时,A网站看到的就不是小李的IP,而是代理服务器的IP了;自然,小李就可以继续访问A网站了;

(2)反向代理;

 

nginx自签名 nginx简书_服务器_04

 说明:

         ● 反向代理的中的反,主要是指作用对象不一样;即,正向代理中的代理服务器主要服务于客户端,而反向代理中的代理服务器主要服务于服务器;

         ● 客户端向服务器发起请求时,在客户端看来,服务器只有一台;即,客户端发起请求后,请求会被反向代理服务器接收;;至于反向代理服务器收到客户端请求后,可以根据不同的服务器的压力情况,怎么进行合理的分发(即,转发到压力相对较小的处理服务器上),对于客户端来说是不可见的;

         ● 而Nginx作用的范围,就是反向代理;其可以帮助各个处理业务的服务器进行负载均衡;

(3)正向+反向代理;

nginx自签名 nginx简书_Nginx_05

说明:

         ● 比如【一个100人的公司,这个公司设置了一个正向代理服务器】,【一个设置了反向代理服务器的网站】;那么这个公司中的人去访问这个网站的时候,两边都使用了代理,这就是一个比较简单的案例;

         ● 而Nginx作用的范围,就是反向代理;其可以帮助各个处理业务的服务器进行负载均衡;

(2)Nginx主要适用场景2:静态资源服务器(即动态、静态资源分离);

         ● 对于一个网站,如果其动态资源(比如处理业务的逻辑代码)和静态资源(比如图片,CSS,网页等)不分离的话,我们访问这些网站的时候,速度会比较慢;这是因为,我们在获取静态资源的时候,是没有必要访问后端服务Tomcat的;(因为图片,CSS,网页等静态资源,基本上是不变的内容);如果静态资源也由Tomcat进行处理转发的话,即那些无关的内容也交给了Tomcat,那么Tomcat的压力就会变大,其速度自然会变慢;

         ● 有了Nginx后,我们可以把图片,CSS,网页等静态资源,放在Nginx服务器上;用户再访问网站的时候,我们就可以从Nginx服务器上来获取这些静态资源;对此,我们就相当于做了一个分离的处理;;;比如,一个请求过来了,Nginx服务器如果认为这请求,请求的是一个接口(接口是需要计算的),那么其会转发到Tomcat(即处理业务的服务器);如果,其认为这请求,请求的是一个图片,并且这个图片就在本机Nginx服务器而且已经缓存过来,那么Nginx服务器就会自己处理掉这个请求,把静态的资源返回给用户;

3.Nginx优点; 

(1)Nginx性能好,其支持很高的并发量;

         ● 比如Tomcat,其一般最多也就支持几百的并发;(下图参考自【tomcat支持多少并发】);

nginx自签名 nginx简书_nginx_06

(PS:我们常用的Tomcat等,设计人员在开发这些组件的时候,本身就赋予了这些组件一定的并发处理能力?)

         ● 再比如MySQL,其也就能支持几千的并发量;

         ● 但是,对于Nginx可以支持很高的并发;高到Nginx通常不会成为高并发的瓶颈(主要的瓶颈一般是Tomcat(即服务器啦)和MySQL数据库);就算后面业务规模很大,Nginx成为瓶颈了,我们只要稍微增加几个Nginx,就能满足需求了;

(2)应用广泛;

         ● 在实际中,只要我们的服务用户量稍多一些、规模上去的话,很可能就会选择Nginx作为组件之一;

(3)社区活跃度高;

         ● 正是由于Nginx应用广泛,所以Nginx社区活跃度高;我们遇到了一些问题的时候,可以有地方去寻找解决方案;

(4)高可用,可以热部署,服务非常稳定;

         ● Nginx往往是所有流量的入口;自然,作为入口是不能挂掉的,其必须要非常稳定的对外提供服务;所以,Nginx有个功能就是热部署(热部署的意思是,在不影响当前流量的情况下,可以进行新的部署和调整);正是有热部署能力,我们就避免了Nginx的重启;

(5)用法简单,容易上手;

         ● Nginx比较简单;我们不需要掌握特别复杂的概念,也不需要理解一套新的理论;