码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx服务器架构初探

时间:2018-03-27 16:36:05      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:子进程   阻塞非阻塞   声明   线程   web   产生   非阻塞   通知   表达   

1.nginx模块化结构

  核心模块(进程管理,权限控制,错误日志,配置解析,事件驱动机制,正则表达式解析)

  标准HTTP模块(这些模块是默认被编译到Nginx中的,除非使用without排除)

  可选HTTP模块 默认不编译 如需使用则 with参数声明。

  邮件服务模块

  第三方模块

2.Nginx服务器的web请求处理机制

  多进程方式 (优点在于设计和实现相对简单,子进程相互独立,处理客户端的请求彼此不受到干扰,缺点是进程开销比较大) apache

  多线程方式(开销小于进程,缺点是线程访问进程中同样的内存,彼此之间相互影响,不容易维护)iis

  异步方式

    概念 同步异步 阻塞 非阻塞 

    同步异步是指调用是否等待完成

    阻塞非阻塞是指调用socket的IO操作是线程挂起等待完成后返回,还是线程一直不挂起,立即返回执行下一次调用。

    同步阻塞:发送饭向接受方发送请求后,一直等待响应,接收方处理请求时进行IO操作如果不能马上得到结果,就一直等到返回结果才响应发送方。

    同步非阻塞:发送饭向接受方发送请求后,一直等待响应,接受对方处理IO操作,如果不能马上得到结果,立即返回,去做其他的事情,由于没有请求的结果,不响应发送          方,知道IO完成,才响应发送方请求。然后处理下次的请求

    异步阻塞: 发送方接受请求后,不用等待响应,去做其他工作。接收方处理请求时进行的IO操作如果不能马上得到结果,就一直等到放回结构后才响应发送方,期间不能进          行其他的工作。

    异步非阻塞:发送方接受请求后,不用等待响应,去做其他工作。接受方处理请求时进行IO操作,如果不能马上得到结果,也不等待,而是去做其他的事情,当IO操作完成          的时候,将完成的结果通知发送方。

  Nginx服务器如何处理请求

    结合多进程机制和异步非阻塞方式。Nginx启动后,产生一个主进程和多个工作进程。工作进程用于接收和处理客户端的请求。

 

  Ngnix服务事件处理机制

    1 使用轮询的方式 每隔一段时间去看一下IO的状态

    2使用回掉的方式 操作系统在IO完成后主动通知工作进程。select poll epoll kqueue 为回调方式。

 

  Ngnix事件驱动模型

    poll是对select的优化,epoll 是对poll的优化。

    

    

    

    

    

  

 

  

    

    

    

    

  

  

 

  

  

      

    

  

  

Nginx服务器架构初探

标签:子进程   阻塞非阻塞   声明   线程   web   产生   非阻塞   通知   表达   

原文地址:https://www.cnblogs.com/wangwei1989/p/8657601.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!