1. 概述

2. 扩展模块(假设根目录名称为nginx)

  • nginx/configure文件中可以修改配置文件路径(编译时使用):

    • 例如像把配置文件从默认的nginx.conf改为webserver.conf:NGX_PREFIX=${NGX_PREFIX:-/usr/local/nginx}改为NGX_PREFIX=${NGX_PREFIX:-/xxx/xxx/xxx}
  • nginx/src/core/ngx_conf.c中的ngx_conf_full_name是配置文件名的配置?
  • nginx/src/core/ngx_log.c中是日志的配置?
  • 处理流程
    • 各个模块中会以固定格式,定义一些结构体,ngx_http_core_loc_conf_t* clcf;并设置一个clcf->handler
    • 先根据nginx/auto/modules中注册的模块,到(ngx_http_apptest_handler、xngx_recom_handler、ngx_recom_handler方法?怎么判断转发到哪一个模块?
    • 然后每个模块都初始化一个自定义的Entry类(相当于Web api中的路由转发设置,只是自行进行了解析url和转发调用各个处理函数),用于做路由转发(根据url调用不同的逻辑处理类)

3. 项目学习

  • 为什么把名称中的nginx改为了webserver?因为用了BSD协议,随便改??

    • 为什么把默认引用的<nginx.h>都改成了#include "../../core/webserver.h"?当然也就同时要修改使用的地方如nginx/auto/sources

      • nginx/src/core/ngx_module.h
      • nginx/src/stream/ngx_stream_variables.c
      • nginx/src/os/unix/ngx_posix_init.c
      • nginx/src/http/v2/ngx_http_v2_filter_module.c
      • nginx/src/http/ngx_http_header_filter_module.c
      • nginx/src/http/ngx_http_special_response.c
    • 为什么把Copyright中的Nginx都改成了webserver?
      • nginx/auto/cc/conf等
    • 为什么把core下面nginx改成了webserver?
  • 定制修改的文件(动了逻辑的)
    • nginx/conf(修改配置文件位置)
    • nginx/auto/cc/gcc
    • nginx/auto/lib/conf + nginx/auto/lib/app/conf(前者引用后者)
    • nginx/auto/install(调整安装过程,如拷贝一些配置文件到指定位置)
    • nginx/auto/make(编译相关,如g++)
    • nginx/auto/modules(注册自定义及使用到的扩展模块)
    • nginx/auto/options(一些nginx开关,如是否打开代理、重写等)
    • nginx/src/core/ngx_log.c
    • nginx/src/core/ngx_conf.c
    • nginx/src/core/nginx.c重命名为nginx/src/core/webserver.c,并没有修改逻辑?

Nginx自定义扩展模块的更多相关文章

  1. nginx自定义模块编写-根据post参数路由到不同服务器

    nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自 ...

  2. Nginx自定义模块编写:根据post参数路由到不同服务器

    Nginx自定义模块编写:根据post参数路由到不同服务器 2014-05-05 15:27 blogread IT技术博客 字号:T | T Nginx可以轻松实现根据不同的url 或者 get参数 ...

  3. nginx自定义模块编写-实时统计模块--转载

    原文:http://www.vimer.cn/2012/05/nginx%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E5%9D%97%E7%BC%96%E5%86%99- ...

  4. Nginx 自定义添加Response Headers 修改server

    之前说过如何隐藏Response Headers中 X-Powered-By 修改php.ini expose_php = Off service php-fpm reload 隐藏Nginx版本号  ...

  5. nginx自定义500,502,504错误页面无法跳转【转】

    1.自定一个页面,这个页面是一个链接地址可以直接访问的. 以下是nginx的配置: location / {            proxy_pass http://tomcat_app108;   ...

  6. http 错误代码解释 && nginx 自定义错误【转】

    如果向您的服务器发出了某项请求要求显示您网站上的某个网页(例如,当用户通过浏览器访问您的网页或在 Googlebot 抓取该网页时),那么,您的服务器会返回 HTTP 状态代码以响应该请求. 此状态代 ...

  7. nginx 自定义代理返回 404

    在nginx的http段,加上一面的配置 proxy_intercept_errors on;//自定义代理返回的404错误提示

  8. nginx自定义模块记录上游服务器特定响应头

    功能,服务器通过扩展自定义命令,记录上游的服务器返回的特定响应头内容,记录到本地文件中 代码如下: /* * Copyright (C) Ciaos */ #include <ngx_confi ...

  9. Nginx 自定义404、500、502 页面

    利用nginx的反向代理来实现 服务器404 和500 等状态码的自定义页面 1.nginx配置文件 nginx.conf 配置开启代理错误拦截 和配置页面  下划线部分  http { ...... ...

随机推荐

  1. Maven父级pom.xml配置文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  2. JDBC模板对象是多例的

  3. Android基础之sqlite 数据库简单操作

    尽管很简单,但是也存下来,以后直接粘过去就能用了. public class DBHelper extends SQLiteOpenHelper {      private static final ...

  4. 201671010140. 2016-2017-2 《Java程序设计》java学习第十四周

      java学习第十四周       本周,主要精力放在了第十二章swing用户界面组件知识的学习,swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨 ...

  5. 10 华电内部文档搜索系统 search02

    搜索项目并不是一个很大的项目,在实际项目中往往是作为子项目和别的项目集成在一起的.比如说和OA项目集成在一起,作为另外一个项目的子系统来使用.搜索项目的功能并不复杂. 整个项目是文档搜索项目,如题:企 ...

  6. 28-组合数(dfs)

    http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=32 组合数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 ...

  7. zookeeper 面试题2 比较乱

    Zookeeper是什么框架分布式的.开源的分布式应用程序协调服务,原本是Hadoop.HBase的一个重要组件.它为分布式应用提供一致性服务的软件,包括:配置维护.域名服务.分布式同步.组服务等.应 ...

  8. easyui tabs update 强制刷新页面

    var tab = artDialog.open.origin.$("#tabs").tabs("getTab", "公司评级"); var ...

  9. rocketmq安装部署过程(4.0.0版本)

    准备工作 3个虚拟机节点的构成如下 : 安装步骤 操作过程 1.安装包已经上传至其中1个节点. 2.解压缩安装包 命令:unzip rocketmq-all-4.0.0-incubating-bin- ...

  10. 有一个5ml 的瓶子 和3ml 的瓶子 和 很多水 现在 要取出4ml的水 请写出编程 多种解法

    //TODO public class demo { public static void main(String[] args) { demo.ss(); demo.sss(); } public ...