Nginx| 青训营笔记

69 阅读4分钟

这是我参与「第五届青训营」伴学笔记创作活动的第14天

一个基本概念 一、nginx是什么,它能做什么

Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器。 具有非常强大的高并发处理能力,经得起高负载的考验。 一些报告显示它最多可以支持 50,000 个并发连接。 其特点是占用内存少,并发能力强。 事实上,nginx的并发能力在同类web服务器中确实表现的更好。 中国大陆使用nginx网站的用户有:百度、京东、新浪、网易、腾讯、淘宝等。

  1. Nginx 作为网络服务器

Nginx可以作为静态页面的web服务器,也支持CGI协议的动态语言,如perl、php等,但不支持java。 Java程序只有配合tomcat才能完成。 Nginx 是专门为性能优化而开发的。 性能是其最重要的考虑因素。 它在实现上非常注重效率,经得起高负载的考验。 一些报告显示它最多可以支持 50,000 个并发连接。

3.转发代理

Nginx不仅可以作为反向代理来实现负载均衡。 它还可以用作正向代理来执行上网等功能。 正向代理:如果把局域网外的互联网想象成一个巨大的资源池,局域网内的客户端访问互联网需要通过代理服务器。 这种代理服务称为正向代理。

简单:通过代理服务器访问服务器的过程称为正向代理。 需要在客户端配置代理服务器才能访问指定网站

4.反向代理

反向代理,实际上客户端是不知道代理的,因为客户端不需要任何配置就可以访问。 我们只需要将请求发送到反向代理服务器即可。 反向代理服务器选择目标服务器获取数据后,返回给客户端。 此时反向代理服务器和目标服务器对外是一个服务器,代理服务器是暴露地址,隐藏了真实服务器IP地址。

5.负载均衡

增加服务器的数量,然后把请求分发到各个服务器上,把原来的请求改为单台服务器分发请求到多台服务器上,将负载分发到不同的服务器上,也就是我们所说的负载均衡

客户端向服务器发送多个请求,服务器处理请求,其中一些请求可能需要与数据库进行交互。 服务器完成处理后,将结果返回给客户端。

     这种架构模型比较适合早期的系统,系统比较单一,并发请求比较少,成本也比较低。 但是随着信息量的不断增长,访问量和数据量的快速增长,系统业务复杂度的增加,这种架构会导致服务端对应的客户端请求越来越慢。 当并发量特别大的时候,很容易直接导致服务器Crash。 很明显这是服务器性能瓶颈导致的问题,那么如何解决这种情况呢?

     我们首先想到的可能是升级服务器的配置,比如提高CPU的执行频率,增加内存等来提高机器的物理性能来解决这个问题,但是我们知道摩尔定律越来越失效了 , 硬件的性能提升不能满足日益增长的需求。 最明显的例子就是天猫双十一那天,某款热销商品的瞬时访问量非常大,所以类似上面的系统架构,不可能把机器增加到现有的top- 水平物理配置。 满足需求。 那么该怎么办? 在上面的分析中,我们去掉了增加服务器物理配置来解决问题的方法,也就是说纵向的解决问题已经行不通了,那么横向增加服务器的数量呢? 这时集群的概念应运而生,单台服务器解决不了。 我们增加了服务器的数量,然后将请求分发到每台服务器上,将原来请求单台服务器改为分发请求到多台服务器。 将负载分配到不同的服务器上,也就是我们所说的负载均衡

6.动静分离

为了加快网站的解析速度,动态页面和静态页面可以由不同的服务器进行解析,以加快解析速度。 减轻原有单台服务器的压力。