Nginx_Lua的安装及环境
Nginx_Lua 介绍
ngx_lua – 把lua语言嵌入nginx中,使其支持lua来快速开发基于nginx下的业务逻辑
该模块不在nginx源码包中,需自行下载编译安装。使用lua 5.1(目前不支持lua 5.2) 或 luajit 2.0 。
添加lua支持后,开发复杂的模块,周期快,依然是100%异步非阻塞。
ngx_lua 哪些人在用:
淘宝、腾讯财经、网易财经、360、去哪儿网等
CloudFlare, CNN, Wingify, Reblaze, Turner, Broadcasting System
lua-nginx-module 主要官方代码在 :
https://github.com/openresty/lua-nginx-module
1 安装LuaJit
wget -c http://luajit.org/download/LuaJIT-2.0.2.tar.gz
tar xzvf LuaJIT-2.0.2.tar.gz
cd LuaJIT-2.0.2
make install PREFIX=/usr/local/luajit
echo "/usr/local/luajit/lib" > /etc/ld.so.conf.d/usr_local_luajit_lib.conf
#配置环境变量
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
2 安装ngx_devel_kit 和 lua-nginx-module
ngx-devel-kit下载地址
https://github.com/simpl/ngx_devel_kit/
lua-nginx-module下载地址
https://github.com/chaoslawful/lua-nginx-module/
tar -zxvf ngx_devel_kit-0.3.0.tar.gz
得到 ngx-devel-kit路径
/home/itcast/Project-Packages/ngx_devel_kit-0.3.0
tar -zxvf lua-nginx-module-0.10.8.tar.gz
得到 lua-nginx-module路径
/home/itcast/Project-Packages/lua-nginx-module-0.10.8
3 安装nginx
wget 'http://nginx.org/download/nginx-1.11.2.tar.gz'
tar -xzvf nginx-1.11.2.tar.gz
cd nginx-1.11.2/
./configure \
--add-module=/home/itcast/Project-Packages/ngx_devel_kit-0.3.0 \
--add-module=/home/itcast/Project-Packages/lua-nginx-module-0.10.8
make
sudo make install
4 配置第一个ngx_lua程序
4.1 ngx执行lua脚本文件
(1) 打开/usr/local/nginx/conf/nginx.conf配置文件
在server{}中加上如下配置:
location /lua_test1 {
#执行 文本 lua 脚本
content_by_lua_file conf/lua/hello.lua;
}
其中hello.lua代码如下:
ngx.say("HELLO LUA!!")
(2) 重启nginx服务器
sudo /usr/local/nginx/sbin/nginx -s reload
(3)客户端访问
浏览器输入 http://192.168.2.113/lua_test1
4.2 ngx执行lua脚本内嵌代码块
(1) 打开/usr/local/nginx/conf/nginx.conf配置文件
在server{}中加上如下配置:
location /lua_test2 {
#执行内嵌 lua脚本
content_by_lua '
-- 设置返回的content_type头
ngx.header.content_type = "text/plain";
-- 回复客户端请求数据
ngx.say("Hello World ngx_lua")
-- 记录nginx日志
ngx.log(ngx.ERR, "ngx lua ERR ERR ERR!!!!")
ngx.log(ngx.NOTICE, "ngx lua NOTICE NOTICE NOTICE!!")
ngx.log(ngx.INFO, "ngx lua INFO INFO INFO!!")
';
}
(2) 重启nginx服务器
sudo /usr/local/nginx/sbin/nginx -s reload
(3)客户端访问
浏览器输入 http://192.168.2.113/lua_test2