17. Nginx与Lua开发

Posted 思过崖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17. Nginx与Lua开发相关的知识,希望对你有一定的参考价值。

安装 Lua 和 Lua for nginx

#安装lua
yum install -y lua
lua -v

安装更高效的 Lua 语言解释器 LuaJIT

wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz
tar -zxvf LuaJIT-2.0.2.tar.gz
cd LuaJIT-2.0.2
make install PREFIX=/usr/local/LuaJIT/2.0.2
export LUAJIT_LIB=/usr/local/LuaJIT/2.0.2/lib
export LUAJIT_INC=/usr/local/LuaJIT/2.0.2/include/luajit-2.0
echo "/usr/local/LuaJIT/2.0.2/lib" >> /etc/ld.so.conf
ldconfig

安装 ngx_devel_kit 和 lua-nginx-module

wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz
tar -zxvf v0.10.9rc7.tar.gz
tar -zxvf v0.3.0.tar.gz

#先make clean,然后在原有的nginx ./configure基础上,添加新的模块
#如果出现undefined reference to `X509_check_host\'错误,需要添加--with-openssl选项,指向openssl 1.0.2安装包源码所在的目录。
./configure --add-module=/path/to/ngx_devel_kit-0.3.0 --add-module=/path/to/lua-nginx-module-0.10.9rc7
--with-openssl=/path/to/openssl-1.0.2k
make && make install

使用nginx日志输出 request 或 response 数据

https://www.hardill.me.uk/wordpress/2018/03/14/logging-requests-and-response-with-nginx/

Nginx调用lua

指令 说明
set_by_lua, set_by_lua_file 设置Nginx变量
access_by_llua, access_by_lua_file 访问控制
content_by_lua, content_by_lua_file 接收请求,输出响应

Lua调用Nginx

变量 说明
ngx.var nginx变量
ngx.req.get_headers 获取请求头
ngx.req.get_uri_args 获取请求参数
ngx.redirect 重定向
ngx.print 输出内容
ngx.say 同ngx.print,会多一个换行符
ngx.header 输出响应头
... ...

专题阅读

以上是关于17. Nginx与Lua开发的主要内容,如果未能解决你的问题,请参考以下文章

Nginx与Lua的开发

新书《Nginx实战:基于Lua语言的配置开发与架构详解》开始发售

php类似nginx-lua的扩展,nginx-php中文开发文档

安装OpenResty(Nginx+Lua)开发环境

Nginx与LUA

Lua学习与Nginx整合