美文网首页
二、nginx工作进程处理简单请求时的系统调用(参考《深入剖析N

二、nginx工作进程处理简单请求时的系统调用(参考《深入剖析N

作者: 夜雨辉晨 | 来源:发表于2017-12-23 13:59 被阅读0次

    一、nginx工作进程处理简单请求时的系统调用
    1.找到nginx的工作进程

    ps aux |grep nginx


    image.png

    2.使用strace监控该进程

    strace -p 5439

    3.对nginx发起简单get请求

    wget localhost

    4.strace监控结果


    image.png

    二、简单分析(参考《深入剖析Nginx》)
    1.epoll_wait返回值为1,表示1个描述符存在可读写事件。epoll_wait用于轮询I/O事件的发生。关于epoll,可以参考epoll_create, epoll_ctl和epoll_wait 实例讲解
    2.accept4接受请求,返回的3为socket的文件描述符。
    3.epoll_ctl把accept4返回的套接字加入到事件监听机制里。
    4.recvf从该socket文件描述符内读取数据。
    5.stat判断文件index.html是否存在。
    6.open打开文件index.html,返回文件描述符9。
    7.fstat获取文件状态
    7.writev通过描述符3将响应头写出。
    8.sendfile把文件描述符9代表的文件通过描述符3f发出。
    9.write往文件描述符4中写日志信息。
    10.close关闭文件描述符9。
    ...

    相关文章

      网友评论

          本文标题:二、nginx工作进程处理简单请求时的系统调用(参考《深入剖析N

          本文链接:https://www.haomeiwen.com/subject/rjfqgxtx.html