Nginx的一些总结

Nginx的一些总结

Nginx能干些什么事

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

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

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

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

  • 传统的单节点场景

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


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

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

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

反向代理解决负载的问题

什么是动静分离?

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

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

动静分离

Nginx的性能

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

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

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

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,887评论 24 1,002
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,523评论 19 139
  • 上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建...
    七寸知架构阅读 81,465评论 21 356
  • 文/姑苏牧羊 Act1 如果爱情是可以设计的,那么莫小白一定是一位顶级的爱情设计师。 似乎每个少女青涩的梦里都有这...
    JK姑苏大叔阅读 2,844评论 0 4
  • I 引导促进 重述原文知识 【what】 现代社会很多人都有拖延症,面对一个拖延的老板或者客户你该怎么办呢?扮可怜...
    ef8ac4d7fdfc阅读 1,488评论 0 0