• nginx学习笔记二


    一,nginx架构
    在Linux系统中以daemon(守护进程)的方式在后台运行,后台进程包含一个master进程和多个worker进程(多进程的工作方式)

    				
    					master进程
    					    |
    					   信号
    					    |
    					    |
    	    ---------------------------------------------------------------
    	    |				    |				   |
    
    	worker进程			worker进程			worker进程
    	    |				    |				   |
    	    |				    |				   |
    	   连接				   连接				   连接				
    	-----------			-----------			-----------
    	|	   |			|	   |			|	   |
    
        client	client		    client	client		    client	client
    

      

    1.多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程相互之间是独立的
    2.一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其他进程的请求。
    3.推荐设置worker的个数为cpu的核数
    4.异步非阻塞(非阻塞不会让出cpu导致切换浪费)

    二,基础概念
    1.connection : 是对tcp连接的封装
    nginx可以通过worker_connections来设置每个worker进程支持的最大连接数
    nginx能建立的最大连接数:worker_connections * worker_processes
    对于http请求本地资源来说,能够支持最大并发数量:worker_connections * worker_processes
    如果http作为反向代理来说,最大并发数量应该是worker_connections * worker_processes/2
    (因为作为反向代理服务器,每个并发会建立与客户端的链接和与后端服务器的链接,会占用两个链接)
    2.request
    Nginx中指http请求
    web服务器工作流:
    http 请求是典型的请求-响应类型的的网络协议,而 http 是文本协议,所以我们在分析请求行与请求头,以及输出响应行与响应头,往往是一行一行的进行处理。如果我们自己来写一个 http 服务器,通常在一个连接建立好后,客户端会发送请求过来。然后我们读取一行数据,分析出请求行中包含的 method、uri、http_version 信息。然后再一行一行处理请求头,并根据请求 method 与请求头的信息来决定是否有请求体以及请求体的长度,然后再去读取请求体。得到请求后,我们处理请求产生需要输出的数据,然后再生成响应行,响应头以及响应体。在将响应发送给客户端之后,一个完整的请求就处理完了。

  • 相关阅读:
    2021年最后的每日一题练习 (持续更新)
    ColorPickUper类算出图片的主要色调
    js控制gif从第一帧开始播放的办法
    ExternalInterface.addCallBack 在TT浏览器 IETester等浏览器上的问题
    js版的矩形式图,算法借鉴datavjs
    Feathers ui给组件加个特定的皮肤
    linux笔记
    ofbiz调试
    ofbiz 笔记
    给gridview动态生成radiobutton添加OnCheckedChanged监听函数
  • 原文地址:https://www.cnblogs.com/inspred/p/9324296.html
Copyright © 2020-2023  润新知