Nginx服务器的Web请求处理机制

今天学习一下Nginx的优势,肯定了解一下其他服务器特性,做一下对比

1.多进程方式

  每次接收到客户端时,都会生成一个子进程去处理,客户端断开,子进程会被回收

 优点:相互独立,实现简单,保证服务器的稳定性

 缺点:每次生成一个子进程,对资源和时间会有一定的开销,处理大量并发请求,会导致系统性能下降

apache对其进行了改进,当客户端没有连接时就会生成一个子进程去等待,客户端断开后也不销毁而是等待下一个,但不能从根本解决问题

2.多线程方式

  每当接收到一个客户端时,服务器的进程生成出一个线程来和客户端进行交互

  优点:线程的开销要比进程的开销小很多,有利于协作

  缺点:多个线程位于同一个进程,彼此之间相互影响,在增加了出错的风险

IIS使用多线程方式提供服务,通常要定期检查和重启服务器,防止意外

3.异步方式

  需要了解同步,异步,阻塞和非阻塞的概念

 1.同步:发送方发送请求后,等待接收方响应结果,接受请求后才能发送下一次请求

 2.异步:发送方发送请求后,不需要等待响应结果,直接发送下一次请求

 3.阻塞: 当没有得到响应结果时,进程会被挂起,知道接收到响应结果才会继续工作

 4.非阻塞:没有得到响应结果,进程回立即返回执行下一个调用

阻塞和同步不能混淆,异步和非阻塞也不能混淆

  目前有四种方式

    同步阻塞方式

    同步非阻塞方式[不使用]

    异步阻塞方式[不使用]

    异步非阻塞方式[该方式效率最高]

      举个例子,比如用户在付款之后,收款员要操作收款机,期间收款员可以聊天,打电话等操作,等何时出款机得出结果再反馈给用户

目前Nginx使用都是异步机制和多进程机制结合

原文地址:https://www.cnblogs.com/wangheng669/p/8191905.html