nginx:让nginx运行自己的编写第三方模块

缘由

今天阅读 深入理解ngnix 的第三章,需要完成一个第三方模块,然后添加到nginx里面去,然后我在对应的网页访问的时候就可以直接调用我写的第三方模块,这个第三方模块只是发浏览器发了一个hello world而已。


流程

流程中的第一个是对应书中的页数
  • 1、P72:建一个ngx_http_mytest_module.c的文件,写我的新添加的模块的代码,因为还是比较简单的,所以用一个文件就可以了。
  • 2、P79:为了将模块能够编译进Ngnix,源代码必须在一个文件夹下,然而在文件夹下建一个config的文件用于没告诉nginx如何编译本模块
  • 3、P80:完成config文件的编写
    ngx_addon_name=ngx_http_mytest_module
    HTTP_MODULES="$HTTP_MODULES ngx_http_mytest_module"
    NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_mytest_module.c"
  • 4、P89:完成ngx_command_t的编写
  • 5、P90:完成了与ngx_command_t里面所指的回调方法的书写。
  • 6、指出了应该在配置文件中如何编写,因为我用的就是默认的那个nginx的配置文件,所以直接在配置文件中添加如下字段。
    Location /test {
            mytest;
    }
    见下图所示:
    nginx:让nginx运行自己的编写第三方模块_第1张图片
  • 7、根据91页完成在HTTP初始时的框架的需要调用的回调函数的书写,由于不会在HTTP初始化时使用任何回调函数,所以全部置为NULL
  • 8、P92:完成ngx_module_t的编写
  • 9、P106:完成了ngx_http_mytest_handler 方法的编写,发送hello world给浏览器。

编译过程

其中两个without的原因是因为我没有安装相应的包,只有第一个参数是为了添加第三方的模块,也就是我新完成模块
./configure --add-module=/home/asd/Downloads/chapter3/helloworld --without-http_rewrite_module  --without-http_gzip_module

剩下的就是make和make install

最后的结果

nginx:让nginx运行自己的编写第三方模块_第2张图片

发现错误

  1. conig里面的引号,有一个我用成了中文的引号
  2. 在完成的ngx_http_mytest_module.c里面没有提前声明要使用的函数

代码

完全按照作者要求所写:需要的人可以去 http://taohui.org.cn/下载,本篇讲的是第三章。
我自己还是在网盘里备份一份吧:深入理解nginx第三章例子代码.zip

你可能感兴趣的:(nginx)