Nginx的一些总结

作者: 陈_志鹏 | 来源:发表于2017-12-22 15:17 被阅读66次

    Nginx的一些总结

    Nginx能干些什么事

    • 应用的负载均衡
    • 反向代理
    • 动静分离

    对目前的来说Nginx还是比较主流的HTTP方向代理服务器,最主要的核心功能就是能反向代理(这里就包括了负载均衡)、对资源动/静的分离、缓存等。

    如何理解反向代理和负载均衡?

    有两种场景,一种是传统的单节点服务场景,另外一种是反向代理的场景。
    我们把它们进行对比。

    • 传统的单节点场景

    从图中可以看出如果达到上限,整个服务就会响应的时间变慢,以及会出现瘫痪的情况,
    这样无法对客户端提供服务。


    传统的单节点场景
    • 使用反向代理解决负载的问题

    使用反向代理的服务器就非常有效的解决了负载的问题,通过Nginx的反向代理让整个应用集群去对外提供服务,这样不管从负载来看,或者单点故障来看,都能够有效的解决问题。

    执行的流程:客户端 => 向代理服务器寻找服务 => 会默认轮循请求应用服务器 => 结果返回给客户端

    反向代理解决负载的问题

    什么是动静分离?

    静态资源:
    在应用服务器上,比如Tomcat这类级别的服务器连接的资源的是非常宝贵的,想要充分的利用资源比如一些静态的文件,我们可以转移到Nginx的身上。

    动态资源:
    客户端指定要的文件,每次请求可能要的文件都不一样,这样的资源就是动态的。

    动静分离

    Nginx的性能

    可能最担心的就是Nginx的性能问题,
    所有的首次请求的压力都压在Nginx的身上,这样会不会有问题呢?
    以下是Nginx的一些特点:

    • 使用C语言开发(占用资源少)
    • 单进程
    高性能的效率是如何达到的?

    用C语言开发的占用资源相对来说就很少,因为更加的接近计算机的底层,其次单进程是重点
    Nginx的本身处理的的东西就很简单,可以理解为就是简单的转发请求到别的服务器上,因为各种计算的逻辑是应用服务进行处理的,和Nginx本身就没有关系。所以Nginx非常的轻量,一个单节点Nginx就可以承受非常高的QPS值。

    因为是单进程,处理简单的逻辑,所以效率变得极高!

    单进程与多进程(题外话)

    为什么有时候单进程的执行效率会比都进程的要高?
    其实和我们现实生活中一样,处理简单的事情就用简单的方案,杀鸡不用牛刀。
    Nginx一样的道理,处理的逻辑也很简单采用单进程的方式做合适自己本身的事情。

    开启多个进程还需要分配任务进行调度,所以还不如单进程的好使。

    再举个典型的例子,做1+1的算术题,我们总不可能丢到集群中做计算吧?(哈哈...)

    相关文章

      网友评论

        本文标题:Nginx的一些总结

        本文链接:https://www.haomeiwen.com/subject/duxxgxtx.html