虽然说,分层的软件开发对于维护性和开发性都有很好的帮助,但是有些情况下,又不得不为了性能耦合在一起,比如nginx很容易做一些http层面的东西,比如缓存、图片处理、反向代理之类的,但是,如果要验证用户权限之类,和业务相互耦合的情况,其实用nginx+lua的方案挺好的。所以,也趁着目前有时间,准备花点时间学一下nginx+lua的开发,同时还有一些应用场景。
要进行开发就要有开发环境,在这里,我们只需要在编译nginx的之前先安装lua以及在安装的时候编译进 nginx的lua插件就OK了。
1 、yum安装lua,下载luajit 2.0并安装
shell>yum install lua lua-devel
然后去http://luajit.org/download.html下载luajit的安装包并且解压,剩下的就是make && make install,到此第一步是lua的环境已经安装完成。
2、下载nginx源码,解压
3、下载ngx_devel_kit解压
4、下载nginx_lua_module解压
5、进入nginx的源码目录,然后运行
./configure --prefix=/opt/nginx \ #nginx的安装路径
--add-module=/path/to/ngx_devel_kit \ #ngx_devel_kit 的源码路径
--add-module=/path/to/lua-nginx-module #nginx_lua_module 的源码路径
然后make -j2、make install就OK了。
最后在nginx的config文件nginx.config中的server区加入
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
然后启动nginx,访问http://nginx—ip/hello 就会出现"hello,lua"
就此我们可以看到nginx的lua模块的效果。
~~~补充一点,因为在后面的开发中可能要用到 nginx的echo模块进行调试,所以还是加上了
./configure的时候加多个echo module的路径就OK了。