一步一步开发nginx核心模块(0)

默认分类 · 2017-10-20

网上关于nginx的模块开发的教程很多,大多数都是介绍http模块开发,进一步就是介绍http的过滤模块开发,
再进一步介绍核心模块开发的就很少了,由于自己鼓捣nginx模块开发还比较深入,就想写个系列教程,
算是对自己的总结,能帮助到一个人,那就更好了,是为序吧!

1.适合的阅读对象

这个系列教程讲的是基于nginx的模块开发,而不是讲nginx的使用,所以如果要想比较清楚明白的阅读完
这个教程,需要读者对nginx的使用,模块开发都有一定的概念,才能往下阅读。另外,也需要读者有一定的c语言基础。

2.参考书籍

强烈推荐陶辉的《深入理解Nginx:模块开发与架构解析》。

3.开发环境配置

3.1操作系统

强烈推荐深度操作系统,好看,好用。

3.2开发ide

我用的qtcreator,其代码自动提示功能很好用,如果你愿意折腾,linux下面的一堆c语言开发ide,可以随意选择。

3.3下载nginx源代码

我写这篇文章时候的nginx稳定版本为1.12.2,下载地址为https://nginx.org/download/nginx-1.12.2.tar.gz

代码如下

cd
mkdir -v ngx_core_module_develop 
cd ngx_core_module_develop
wget https://nginx.org/download/nginx-1.12.2.tar.gz

以后所有的编译、开发都在ngx_core_module_develop目录下面进行

4.下载hello world核心模块

我针对这个系列教程专门在码云建了一个project,下载hello world的源代码到ngx_core_module_develop目录下面。

代码如下

cd
cd ngx_core_module_develop
git clone https://gitee.com/iamdsy/ngx_core_hello_world.git

5.编译、安装、运行hello world核心模块

5.1编译、安装hello world核心模块

cd 
cd ngx_core_module_develop
tar xvfz nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --add-module=../ngx_core_hello_world
make
make install

5.2运行hello world核心模块

5.2.1修改nginx.conf

打开/usr/local/nginx/conf/nginx.conf

在"worker_processes 1;"这一行后面增加下面这行

"ngx_core_hw_enable on;"

5.2.2运行nginx

cd /usr/local/nginx/sbin
sudo ./nginx

正常应该会得到下面这个截图(注意图中的hello world!)

hello world 运行效果图

下一章:hello world模块程序解释,敬请期待

nginx
Theme Jasmine by Kent Liao