网上关于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模块程序解释,敬请期待