• Nginx系列(四)--工作原理


             上篇文章介绍了Nginx框架的设计之管理进程以及多个工作进程的设计。master进程用来管理通过fork子进程与子进程通信。子进程通过处理进程信号接到master的通信去处理请求。

     

    Nginx工作原理:

              Nginx会按需同一时候执行多个进程:一个主进程和几个工作进程,配置了缓存时还会有缓存载入器进程(cache loader)和缓存管理器进程(cache manager)等。全部进程均是仅含有一个线程,并主要通过“共享内存”的机制实现进程间通信。主进程以root用户身份执行,而workercache loadercache manager均应以非特权用户身份执行。

     

    一、Nginx模块常规的HTTP请求和响应的过程:


              当它接收到一个HTTP请求时。它不过通过查找配置文件将此次请求映射到一个location block,而此location中配置的各个指令则会启动不同的模块去完毕工作。因此模块能够看做Nginx真正的劳动工作者。通常一个location中的指令会涉及一个handler模块和多个filter模块(当然。多个location能够服用同一个模块)。handler模块负责处理请求,完毕响应内容的生成,而filter模块对响应内容进行处理。

     

    二、Nginx作为Http反向代理server的使用方法:

             因为Nginx具有“强悍”的高并发高负载能力,因此通常会作为前段的server直接向client提供静态文件服务。

    但也有一些复杂、多变的业务不适合放到Nginxserver上。这时会用ApacheTomcat等server来处理。于是,Nginx通常会被配置为既是静态Webserver也是反向代理server,不适合Nginx处理的请求就会直接转发到上游server中处理。

         Nginx作为HTTPserver以及反向代理server:


     

    Nginx作为反向代理server时转发请求的流程:


              Nginx减轻了上游server的并发压力。延长了一个请求的处理时间,并添加了用于缓存请求内容的内存和磁盘空间。

     

    三、总结

              Nginx是一个高性能的HTTP和反向代理server,也是一个IMAP/POP3/SMTPserver。

    工作原理也非常easy,通过转发请求,分担压力,从而减轻server的压力,达到负载均衡的效果。

  • 相关阅读:
    创建FLASK,同步docker
    FLASK Buleprint
    restful api
    Angular JS
    线程日志
    将项目部署到linux下的docker容器中
    安装和卸载docker
    学习目录总编
    Ansible
    装饰器
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6946734.html
Copyright © 2020-2023  润新知