×
关于 Nginx

Nginx 背景介绍

什么是 NginxNginx 的特点

Nginx 平台初探

初探 Nginx 架构Nginx 基础概念Nginx 基本数据结构Nginx 的配置系统Nginx 的模块化体系结构Nginx 的请求处理

Nginx handler 模块

Nginx handler 模块简介Nginx 模块的基本结构Nginx handler 模块的基本结构Nginx handler 模块的挂载Nginx handler 的编写步骤Nginx 示例: hello handler 模块Nginx handler 的编译和使用Nginx 更多 handler 模块示例

Nginx 过滤模块

Nginx 过滤模块简介Nginx 过滤模块的分析

Nginx upstream 模块

Nginx upstream 模块简介Nginx 负载均衡模块

Nginx 其他模块

Nginx core 模块Nginx event 模块

Nginx 配置

Nginx 配置文件nginx.conf中文

Nginx handler 模块的编译和使用


模块的功能开发完了之后,模块的使用还需要编译才能够执行,下面我们来看下模块的编译和使用。

config 文件的编写

对于开发一个模块,我们是需要把这个模块的 C 代码组织到一个目录里,同时需要编写一个 config 文件。这个 config 文件的内容就是告诉 Nginx 的编译脚本,该如何进行编译。我们来看一下 hello handler module 的 config 文件的内容,然后再做解释。

    ngx_addon_name=ngx_http_hello_module
    HTTP_MODULES="$HTTP_MODULES ngx_http_hello_module"
    NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_hello_module.c"

其实文件很简单,几乎不需要做什么解释。大家一看都懂了。唯一需要说明的是,如果这个模块的实现有多个源文件,那么都在 NGX_ADDON_SRCS 这个变量里,依次写进去就可以。

编译

对于模块的编译,Nginx 并不像 apache 一样,提供了单独的编译工具,可以在没有 apache 源代码的情况下来单独编译一个模块的代码。Nginx 必须去到 Nginx 的源代码目录里,通过 configure 指令的参数,来进行编译。下面看一下 hello module 的 configure 指令:

./configure --prefix=/usr/local/nginx-1.3.1 --add-module=/home/jizhao/open_source/book_module

我写的这个示例模块的代码和 config 文件都放在/home/jizhao/open_source/book_module这个目录下。所以一切都很明了,也没什么好说的了。

使用

使用一个模块需要根据这个模块定义的配置指令来做。比如我们这个简单的 hello handler module 的使用就很简单。在我的测试服务器的配置文件里,就是在 http 里面的默认的 server 里面加入如下的配置:

    location /test {
            hello_string jizhao;
            hello_counter on;
    }

当我们访问这个地址的时候, lynx http://127.0.0.1/test 的时候,就可以看到返回的结果。

jizhao Visited Times:1

当然你访问多次,这个次数是会增加的。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)