zoukankan      html  css  js  c++  java
  • Nginx模块开发1_明白自定义模块的编译流程

    自定义模块的编译流程

    • --add-module参数
      configure使用--add-module参数指定添加模块目录.

    • config脚本
      由--add-module指定的目录保存为$ngx-addon-dir环境变量. 其他环境变量由$ngx-addon-dir下的config脚本提供.

      • 局部环境变量用小写表示,例如
        • $ngx_addon_dir,
        • $ngx_addon_name.
      • 全局环境变量用大写表示,例如
        • $NGX_ADDON_SRCS
        • HTTP_MODULES
        • CORE_LIBS
          ...等等
    • 编译流程

      ./configure --add-moudle=/root/workspace/ngx_http_heelo_world_module
      
      • configure将--add-moudle选项值导出为$ngx_addon_dir环境变量
      • configure执行$ngx_addon_dir/config脚本,导出其他环境变量. 局部环境变量用小写表示,全局环境变量用大写表示. 关键环境变量:
        ngx_addon_name=ngx_http_hello_world_module #指定模块名,显示在ngx_modules数组
        NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_hello_world_module.c" #指定模块源文件,如果多个,全部加上.
        HTTP_MODULES="$HTTP_MODULES ngx_http_hell_world_module" #在源文件定义的ngx_module_t类型全局变量
        
      • configure根据导出的环境变量生成objs/Makefile以及ngx_modules.c等文件.

      这样,你就明白了为什么 源文件里必须定义"ngx_module_t ngx_http_hello_world_module"? 另外,其他配置或函数通过ngx_module_t数据结构指定. 换言之, ngx_module_t全局变量就是模块的编加载点.

  • 相关阅读:
    VS2010 创建 windows service 程序
    应用程序 调用 webservice
    管理随笔-组织无全面系统目标和规划
    笔记1——自写综保模块非语言实现方式
    测试模型V模型和W模型
    常用研发模型
    测试方法分类
    初识测试
    IntelliJ IDEA使用快捷键生成各种for循环。增强for循环等等
    java之jdbc数据库连接
  • 原文地址:https://www.cnblogs.com/zolo/p/5841681.html
Copyright © 2011-2022 走看看