nginx-1 概念

什么是nginx?

HTTP服务器、(这不陌生)
反向代理服务器、(负载均衡、分布式)

题外:什么是代理、反代理

  • 正向代理
    客户端非常明确访问的服务器地址。
    服务器只清楚来自哪个代理服务器,而不清楚具体的客户端。
    国内--------X---------->国外网站
    国内------代理-------->国外网站
  • 反向代理
    客户端不知道具体由哪个服务器处理。
    服务器非常明确请求来自哪个客户端。
    剁手党---------------->某淘
    上亿剁手党---------->某淘—>[代理]------->服务器1
    ----------------------------------------------|------->服务器2
    ----------------------------------------------|------->…
    ----------------------------------------------|------->服务器n

nginx的优点

  1. 处理高并发更优秀
    单机支持10万以上的并发连接单机支持10万以上的并发连接
  2. 高扩展
    由多个耦合度极低的模块组成,造就了庞大的官方公布之外的第三方模块,它们和官方公布的一样容易使用。由多个耦合度极低的模块组成,造就了庞大的官方公布之外的第三方模块,它们和官方公布的一样容易使用。由多个耦合度极低的模块组成,造就了庞大的官方公布之外的第三方模块,它们和官方公布的一样容易使用。由多个耦合度极低的模块组成,造就了庞大的官方公布之外的第三方模块,它们和官方公布的一样容易使用。
  3. 高可靠
    核心框架代码的优秀设计、模块设计的简单性;另外,官方提供的常用模块都非常稳定,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供服务。核心框架代码的优秀设计、模块设计的简单性;另外,官方提供的常用模块都非常稳定,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供服务。
  4. 低内存消耗
    一般情况下,10000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础。一般情况下,10000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础。
  5. 热部署
    master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件。当然,它也支持不停止服务就更新配置项、更换日志文件等功能。
  6. 最自由的BSD许可协议
    这是Nginx可以快速发展的强大动力。BSD许可协议不只是允许用户免费使用Nginx,它还允许用户在自己的项目中直接使用或修改Nginx源码,然后发布。这吸引了无数开发者继续为Nginx贡献自己的智慧。

web服务器的请求处理机制

假如一个请求的处理,需要一把?和一把✂

  1. 多进程方式
    主进程生成一个子进程出来和客户端建立连接进行交互。
    每个人都分配一套?和✂,两个人互不干扰,但需要很多的?和✂。

进程与线程的一个简单解释http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html
作者: 阮一峰
日期: 2013年4月24日

  1. 多线程方式
    主进程派生出一个线程出来和客户端进行交互。
    每个人共用一套?和✂,你用?时我用✂,协调进行,优点节省资源,但如果?和✂意外丢失,将导致所有人无法工作。

  2. 异步方式
    食堂(同步)和摄像馆(异步):
    食堂:排队打饭,前一个人打完饭,下个人才能打饭。
    摄像馆:处理大量人流;将照过像的登记在册,明天来取照片,或者微信询问、微信通知您来取。

nginx基本处理架构

在这里插入图片描述

  1. Nginx启动后,会产生一个主进程,主进程执行一系列的工作后会产生一个或者多个工作进程
    在这里插入图片描述
  2. 在客户端请求动态站点的过程中,Nginx服务器还涉及和后端服务器的通信。Nginx将接收到的Web请求通过代理转发到后端服务器,由后端服务器进行数据处理和组织;
    在这里插入图片描述
  3. Nginx为了提高对请求的响应效率,降低网络压力,采用了缓存机制,将历史应答数据缓存到本地。保障对缓存文件的快速访问。
    在这里插入图片描述

master进程
master进程主要用来管理worker进程,具体包括以下主要功能:

  1. 接收来自外界的信号
    在这里插入图片描述
  2. 处理配置文件读取
    在这里插入图片描述
  3. 创建,绑定和关闭套接字
    在这里插入图片描述
  4. 启动,终止和维护worker进程数
    在这里插入图片描述
  5. 当woker进程退出后(异常情况下),会自动重新启动新的woker进程。

worker进程

worker进程的主要任务是完成具体的任务逻辑。其主要关注点是与客户端或后端真实服务器(此时nginx作为中间代理)之间的数据可读/可写等I/O交互事件。

  1. 接收客户端请求
  2. 将请求一次送入各个功能模块进行过滤处理
  3. 与后端服务器通信,接收后端服务器处理结果
  4. 数据缓存
  5. 响应客户端请求
    在这里插入图片描述
    end;
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值