一、nginx 基本概念

wendongzhu / 2023-08-05 / 原文

Nginx 基本概念

  一、什么是Nginx

    是一款高性能的HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务。由俄罗斯的程序员伊戈尔·西索夫开发,官网测试能够支撑5万多并发链接,并且CPU、内存等资源消耗却非常低,运行非常稳定。由C语言编写。

  二、应用场景

    静态处理、反向代理、负载均衡、资源缓存、安全防护、访问限制、访问认证

  、Nginx特点

    1、Nginx是基于IO多路复用,IO多路复用主要解决的是并发问题。

    IO多路复用实现的方式有select、poll、Epool。nginx可使用poll或Epool模型。

    select缺点:

    a、能够监视文件描述的数量存在最大限制;

    b、线性遍历扫描效率低下;

    epool模型:

    a、每当FD(文件描述符file descriptor)就绪,采用系统的回调函数之间将FD放入,效率更高;

    b、最大连接无限制;

    2、轻量化

    功能模块少、代码模块化

    3、Nginx专为性能优化而开发的,实现上非常注重效率,能够承受高负载的考验,官网测试能够支撑5万多并发链接。

  三、反向代理

    1、正向代理

      如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就是正向代理。

 

    2、反向代理

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

 

  四、负载均衡

    所谓负载均衡就是:就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器,从而不会产生集群中大量请求只请求某一台服务器,从而使该服务器宕机的情况。

 

  五、动静分离

    为了加快网站的解析速度,可以把动态页面和静态页面有不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。