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


     原博文出于:    http://blog.csdn.net/liutengteng130/article/details/46724081  感谢!

      上篇文章介绍了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反向代理服务器的用法:

           由于Nginx具有“强悍”的高并发高负载能力,因此一般会作为前段的服务器直接向客户端提供静态文件服务。但也有一些复杂、多变的业务不适合放到Nginx服务器上,这时会用ApacheTomcat等服务器来处理。于是,Nginx通常会被配置为既是静态Web服务器也是反向代理服务器,不适合Nginx处理的请求就会直接转发到上游服务器中处理。

           Nginx作为HTTP服务器以及反向代理服务器:

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

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

    三、总结

              Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。工作原理也很简单,通过转发请求,分担压力,从而减轻服务器的压力,达到负载均衡的效果。

  • 相关阅读:
    poj 3714 Raid(平面最近点对)
    hdu 4638 Group(离线+树状数组)
    UVa 10294(polya 翻转与旋转)
    hdu 4633 Who's Aunt Zhang(polya+逆元)
    Use of Function Arctan
    codeforces 299E Cube Problem
    UVa11806 Cheerleaders(容斥原理)
    UVa11538 A Chess Queen
    UVa11401
    周报(2017.3.19-3.16)
  • 原文地址:https://www.cnblogs.com/zlslch/p/6033545.html
Copyright © 2020-2023  润新知