Nginx入门经典教程之nginx Lua用法

发布时间:2020-05-17编辑:脚本学堂
本文介绍了nginx中lua脚本的相关内容,Nginx入门经典教程之nginx Lua用法,需要的朋友参考下。

什么是nginx lua?

nginx_lua_module是由淘宝工程师清无和春来所开发的Nginx第三方模块,能将Lua脚本嵌入到Nginx配置中,当然也可以在Nginx配置中调用脚本,从而让Nginx执行Lua脚本以高并发/非阻塞地处理各种请求。

一、安装
1、LuaJIT
执行如下命令安装LuaJIT:
 

复制代码 代码示例:
#wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz
#tar -xzvf LuaJIT-2.0.2.tar.gz
#cd LuaJIT-2.0.2
#make
#make install

2、Lua模块
 

复制代码 代码示例:
#wget https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.6.tar.gz
#tar -xzvf v0.8.6

3、Nginx
 

复制代码 代码示例:
#wget http://nginx.org/download/nginx-1.4.2.tar.gz
#tar -xzvf nginx-1.4.2.tar.gz
#cd nginx-1.4.2

编译Nginx源码前要先导入环境变量,告诉Nginx去哪里找luajit
 

复制代码 代码示例:
#export LUAJIT_LIB=/usr/local/lib
#export LUAJIT_INC=/usr/local/include/luajit-2.0
#./configure --prefix=/usr/local/nginx-1.4.2 --add-module=../lua-nginx-module-0.8.6
#make -j2
#make install
#ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

二、配置
可以直接在Nginx配置文件直接嵌入Lua脚本代码,也可以调用Lua脚本文件。
1、直接嵌入脚本
 

复制代码 代码示例:
location /hello {
    default_type 'text/plain';
    content_by_lua 'ngx.say("hello, lua")';
}

2、调用脚本文件
1)在Nginx根目录下,新建lua文件夹,并创建test_lua.lua脚本,脚本内容如下:
 

复制代码 代码示例:
print "hello, lua"

2)修改nginx.conf配置文件
 

复制代码 代码示例:
lua_code_cache off;
location /hello {
    content_by_lua_file lua/test_lua;
}
 

上面的lua_code_cache off关掉lua加载cache,只为了方便测试时修改lua脚本后不需要重启Nginx,不是必须的。

三、测试
启动Nginx,用浏览器访问http://localhost/hello,即可看到hello, lua说明配置成功了。

关于Nginx与Lua之间的一些资料请参考如下链接:
http://wiki.nginx.org/HttpLuaModule
http://tengine.taobao.org/download/taobao_nginx_2012_06.pdf
http://agentzh.org/misc/slides/ngx-openresty-ecosystem.pdf
http://blog.zoomquiet.org/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html