• nginx模块动态加载(http)


    1. 解析部分
      1. 动态加载所有模块,维护一个全局数组modules[nmodules];
      2. 解析配置文件,记录每个块及子块所用的模块,细分到location级别(merge),维护一个全局数组call_modulers[nlocations][ncallmodulers],每当生成一个location,nlocations++;
      3. 为call_modulers中每个location添加默认模块及配置,所有模块加载完毕;
      4. merge call_modulers中各个location使用模块的phase的callback,顺序可以根据模块调用顺序,也可以根据载入顺序,全局变量用局部变量来替换。
    2. 流程部分
      1. 去掉所有phase的流程
      2. 根据请求与location匹配规则,查找使用的call_modulers;
      3. 在原来调用phase的地方调用查到到的call_modulers的location的phase;
      4. 对请求及响应处理中使用的全局变量均用各个location的局部变量代替。
  • 相关阅读:
    一周随笔--15.10.06
    KVC/KVO总结
    一周随笔--15.9.28
    一周随笔--15.9.21
    CocoaPods使用中的invalid byte sequence in US-ASCII错误
    自定义TabBar
    FMDB配合sqlite使用
    常用第三方库
    LLDB编译器命令
    coreData
  • 原文地址:https://www.cnblogs.com/xiaojiu/p/5322060.html
Copyright © 2020-2023  润新知