nginx的Lua扩展
接着上两篇博客,现在开始搭建nginx的LUA和mongodb扩展,完成整个流程的最后一步配置。
Lua是一个可以嵌入到nginx配置文件的动态脚本语言,这样就可以在nginx请求处理的各个阶段执行各种进行逻辑控制的Lua代码。
想要在nginx里边增加lua扩展,需要的模块如下:
安装luajit
惯例,先要下载安装:
1
2
3
4
5
6
|
wget http://luajit.org/download/LuaJIT-2.0.0-beta9.tar.gz
tar -zxvf LuaJIT-2.0.0-beta9.tar.gz
cd LuaJIT-2.0.0-beta9/
make
make install PREFIX=/usr/local/luajit
ln -sf luajit-2.0.0-beta9 /usr/local/luajit/bin/luajit
|
接下来,配置luajit的环境变量,这个在nginx重新编译的时候需要。
1
2
|
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
|
安装ngx_devel_kit
点击获取ngx_devel_kit,将其放在/usr/local目录下,或者使用git来快捷获取。
1
2
|
cd /usr/local
git clone https://github.com/simpl/ngx_devel_kit.git
|
安装lua-nginx-module
点击获取lua-nginx-kit,跟ngx_devel_kit一样,将其解压放于/usr/local目录下。或者使用git快捷获取。
1
2
|
cd /usr/local/
git clone https://github.com/chaoslawful/lua-nginx-module.git
|
使用git来获取github上的资源,是不是十分方便?
重新编译nginx
进入nginx源码放置的文件夹,重新配置configure,再次make,增加nginx的扩展。
1
2
3
4
|
cd /usr/local/nginx-1.8.0/
./configure --prefix=/usr/local/nginx --with-ld-opt="-Wl,-rpath,$LUAJIT_LIB" --add-module=/usr/local/ngx_devel_kit --add-module=/usr/local/lua-nginx-module
make -j2
make install
|
至此,nginx的lua 扩展模块已经安装完毕,下面进行一下测试。
测试lua模块
在nginx的配置文件中增加一段代码就OK了。
1
|
gedit /usr/local/nginx/conf/nginx.conf
|
在监听80端口的server中增加一下内容:
1
2
3
4
5
|
location /lua {
default_type 'text/plain';
content_by_lua 'ngx.say("I am lua in nginx")';
}
|
启动nginx
1
|
/usr/local/nginx/sbin/nginx
|
现在在浏览器中输入127.0.0.1/lua,就可以看到“I am lua in nginx”。这样就说明,nginx的lua模块也安装成功了。
nginx的mongodb gridfs扩展
先从github上将nginx-gridfs模块下载下来。
1
2
3
4
5
6
|
cd /usr/local
git clone https://github.com/mdirolf/nginx-gridfs.git
cd nginx-gridfs/
git submodule init
git submodule update
|
重新编译nginx,这里要注意,由于上边已经增加了nginx的lua扩展,现在需要增加模块,方法如下:
1
|
/usr/local/nginx/sbin/nginx -V
|
获取当前nginx已有的模块:
1
2
3
4
|
nginx version: nginx/1.8.0
built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
configure arguments: --prefix=/usr/local/nginx --with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib --add-module=/usr/local/ngx_devel_kit --add-module=/usr/local/lua-nginx-module
|
可以看到,configure arguments后边的参数,将他们拷贝,供等下使用。
1
2
3
4
|
cd /usr/local/nginx-1.8.0/
./configure --prefix=/usr/local/nginx --with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib --add-module=/usr/local/ngx_devel_kit --add-module=/usr/local/lua-nginx-module --with-openssl=/usr/include/openssl --with-http_stub_status_module --add-module=/usr/local/nginx-gridfs
make
make install
|
这样,nginx-gridfs模块就也安装完成了,现在就可以使用nginx来直接操作mongodb中的gridfs了。
结束
到这里,整个流程的环境安装和配置就算完成了。后边的博客会继续记录我在学习这些内容的过程。
最后,再来张美图吧
~~ 武汉最近的天气,确实很好!