玩转Nginx之一:基础概念

Nginx

web服务器:http协议

http协议:html,MIME(多用途互联网邮件拓展)

major/minor

text/html,text/plain,image/jpeg

web资源:URL(scheme://server:port/path/to/source)

方法:GET,HEAD(相应首部)读取资源

POST提交表单

PUT上传数据

DELETE删除数据

WEBDAV: 开发处理数据传输

http事务:request<—>responce

request:<method><URL><version>

          <HEADERS>

          …

          <body>

responce:<version><status><reason phrase>

<HEADERS>

…

<body>

status:

            1xx:信息类

            2xx:成功类

            3xx:重定向(301,302)

            4xx:错误类(客户端错误)

            5xx:错误类(服务器端错误)

认证:basic:明文认证

digest:表单认证,密文

httpd:MPM(用来定义并发响应模型)

prefok(select模式只支持1014路的并发):进程按照自己的状态创建子进程,子进程响应用户请求

worker:cow(写时复制模型),线程响应请求,模拟一个线程响应多个请求(进程创建的线程数是有限的,性能够比较差)

event:真正意义上的事件驱动,实现一个进程响应多个请求

I/O模型:

进程间通信:关注的是消息通知的机制

同步:synchronous 一个任务的完成需要依赖的话要保证依赖的完成才能执行被依赖的任务。两个任务的状态保持一致

异步:asynchronous不需要等待被依赖的任务完成,只是通知被依赖的任务完成了什么工作即可。依赖于回调函数等,

消息通知:

        同步:等待对方返回消息

        异步:被调用者不能立即返回消息给调用者,通过消息(状态),通知,回调通知调用者

        状态:调用者每隔一段时间就要检查一次;轮询,效率很低

        通知:效率较高;

        回调:和通知方式类似

阻塞/非阻塞:在同步过程中,关注调用者等待调用结果返回之前所处的状态

阻塞(block):调用结果返回之前,调用者会被挂起(和同步是有区别的)

非阻塞(nonblock):和阻塞相反,调用结果返回之前,调用者不会被挂起,明显提高CPU利用率,不理之处在于导致cpu上下文切换之间的负载

常用的io模型:

同步阻塞:同步模型的调用者在被调用者访问之前是被挂起的,效率最低

同步非阻塞:同步模型的调用者在等待被调用者的过程中还能执行其他,性能同样比较低,第一阶段盲等,第二阶段仍然是挂起

io multipexing:io复用,同步阻塞的另外一种方式,select,poll。不是内核级别的调用了

signal driven io:信号量驱动io也可以叫做异步阻塞IO;event;一个进程响应多个请求(第一阶段不会被阻塞)

asynchronous io:异步非阻塞io;第一阶段和第二阶段都不会被阻塞

异步阻塞:等待消息通知时被阻塞,

常见的io方式:网络io:本质是socket文件的读取

    磁盘io:数据流的读取

    每次io都会经由两个阶段:

      本地读取为例:(1)数据加载到内核的内存中(内核缓冲区)

      (2)从内核内存空间复制到用户空间的进程内存空间中

总结:等待数据准备完成也就是上述(1)

数据从内核复制到进程的阶段就是上述(2)

       同步阻塞    同步非阻塞     io复用            信号驱动机制         异步io

blob.png

玩转Nginx之一:基础概念

原创文章,作者:wanghui,如若转载,请注明出处:http://www.178linux.com/53983

赞 (0)
wanghuiwanghui
上一篇 2016-10-29 21:24
下一篇 2016-10-29 21:25

相关推荐

  • 文本处理工具之sed

    文本处理工具之sed 1、sed是一种行编辑器,对文本逐行处理。处理时,它会将文本行载入”模式空间”(临时缓冲区),接着用sed命令对模式空间的内容进行处理,处理完成后,将模式空间内容输出到显示屏 与之类似的处理工具还有grep和awk,相比grep,sed不仅对文本有过滤功能,还可以对文本进行其他增删改的操作。而相比awk,sed显得更加简单高效。下面我们…

    2017-03-18
  • 马哥教育21期网络班—第15周课程+练习—-awk 总结

    GNU awk: 文本处理三工具:grep, sed, awkgrep, egrep, fgrep:文本过滤工具;pattern sed: 行编辑器 模式空间、保持空间 awk:报告生成器,格式化文本输出; AWK: Aho, Weinberger, Kernighan&nbsp…

    Linux干货 2016-11-14
  • lvs简介

    一、 LVS简介         LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org。现在LVS已经是 Linux标准内核的一部分,在Linux2.4…

    Linux干货 2016-10-30
  • 用户和组相关的配置文件

    目录 l  用户 l  组账号 l  UID和GID号 l  /etc/passwd分析 l  /etc/shadow分析 l  /etc/group分析 l  /etc/gshadow分析 l  通过用户和用户组配置文件来查询或管理用户 l  总结 1、用户(User…

    Linux干货 2016-10-23
  • 第二十一周作业

    1、回顾并详细总结MySQL的存储引擎、索引; 常用存储引擎的对比: 特点 MyISAM InnoDB MEMORY MERGE NDB 存储限制 有 64TB 有 没有 有 事务安全 支持 锁机制 表锁 行锁 表锁 表锁 行锁 B树索引 支持 支持 支持 支持 支持 哈希索引 支持 全文索引 支持 集群索引 支持 数据缓存 支持 支持 支持 索引缓存 支持…

    2017-07-19
  • iptables 入门

    iptables简单介绍    其实就是大家所熟知的基于命令行的防火墙工具,它使用规则链来允许或是阻止收发报文。当一条网络连接试图在你的系统中建立连接时,iptablels会查找其对应的匹配规则。如果找不到,iptables将对其采取默认的规则。  iptables基本的用法和常用代码 # iptables -vnL …

    Linux干货 2017-03-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-02 17:09

    概念性的知识可以总结在详细一些,加油!