第7课:Nginx模块

Nginx本身就很牛B了,更牛B的是,Nginx可以很方便的扩展,也就是所谓的Nginx模块,通过这些模块,像变魔术一样,可以完成很多复杂的功能,所以我更想叫他魔块

Nginx模块实在太多,实现的功能也五花八门,比如上传模块,图片裁剪模块,缓存模块等等,可以直接高效的用nginx来实现,不必写或很少写代码
模块一般分为下面几个类别:
Nginx 核心模块
标准 HTTP 模块 
可选 HTTP 模块 
邮件模块 
第三方模块和补丁

1.安装模块
Nginx 模块必须在编译时就进行选择,目前不支持在运行时进行模块选择。
在编译时,可以通过命令 ./configure --help 运行所提供的配置脚本来查看所有支持的编译选项列表(包含可选模块)
nginx第三方模块安装方法:
./configure --prefix=/你的安装目录  --add-module=/第三方模块目录

以安装pagespeed模块实例
在未安装nginx的情况下安装nginx第三方模块
# ./configure --prefix=/usr/local/nginx-1.4.1 \
--with-http_stub_status_module \
--with-http_ssl_module --with-http_realip_module \
--with-http_image_filter_module \
--add-module=../ngx_pagespeed-master --add-module=/第三方模块目录
# make
# make install
# /usr/local/nginx-1.4.1/sbin/nginx

在已安装nginx情况下安装nginx模块
# ./configure --prefix=/usr/local/nginx-1.4.1 \
 --with-http_stub_status_module \
 --with-http_ssl_module --with-http_realip_module \
 --with-http_image_filter_module \
 --add-module=../ngx_pagespeed-master
# make
# /usr/local/nginx-1.4.1/sbin/nginx -s stop
# cp objs/nginx /usr/local/nginx/sbin/nginx
# /usr/local/nginx-1.4.1/sbin/nginx

相比之下仅仅多了一步覆盖nginx文件

安装nginx安装第三方模块实际上是使用–add-module重新安装一次nginx,不要make install而是直接把编译目录下objs/nginx文件直接覆盖老的nginx文件

2.可能你觉得Nginx模块太cool了,想不想自己开发第三方模块?
Nginx模块开发举例
hello模块
http://bg.biedalian.com/2013/08/09/nginx-hello-world.html

模块开发其实并不是很简单,这里给出网络上的一个例子,作为参考,如果真要展开讲,有很多内容