Nginx服务器架构初探

Posted wangwei1989

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx服务器架构初探相关的知识,希望对你有一定的参考价值。

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服务器架构初探的主要内容,如果未能解决你的问题,请参考以下文章

Nginx服务器架构初探

linux---集群架构初探(20)Nginx代理

今日话题丨初探 Nginx 架构

linux---集群架构初探(16)Nginx安装配置文件模块

linux---集群架构初探(24)Nginx Rewrite

初探微服务架构