用lua扩展你的Nginx web

前言

淘宝的agentzh和chaoslawful开发的ngx_lua模块通过将lua解释器集成进Nginx。能够採用lua脚本实现业务逻辑,因为lua的紧凑、高速以及内建协程,所以在保证高并发服务能力的同一时候极大地减少了业务逻辑实现成本。

3d 男人看的缺失的拼图


系统依赖包

Server Racks In Data Center.

yum -y install pcre-devel openssl-devel gcc curl zlib-devel gcc-c++


组件介绍

LuaJIT:lua的一个即时编译器

Nginx Devel Kit:NDK是一个nginx模块,以一种可作用于其他nginx模块的方式,扩展nginx核心功能。

Lua Nginx Module:该模块将Lua解释器或LuaJIT嵌入到nginx核心中,并通过nginx子请求将强大的Lua线程(也称为Lua协程)集成到nginx事件模型中。

nginx:web服务

Server Racks In Data Center.


下载编译安装

wget -c http://luajit.org/download/LuaJIT-2.0.5.tar.gz

tar zxvf LuaJIT-2.0.5.tar.gz

cd LuaJIT-2.0.5

make install PREFIX=/opt/luajit

export LUAJIT_LIB=/opt/luajit/lib

export LUAJIT_INC=/opt/luajit/include/luajit-2.0

( 如果不设置环境变量,在nginx编译的时候会找不到lua模块:./configure: error: ngx_http_lua_module requires the Lua library.)

cd ..

wget -c -O ngx_devel_kit-0.3.0.tar.gz https://codeload.github.com/simplresty/ngx_devel_kit/tar.gz/v0.3.0

tar zxvf ngx_devel_kit-0.3.0.tar.gz

wget -c -O lua-nginx-module-0.10.13.tar.gz https://codeload.github.com/openresty/lua-nginx-module/tar.gz/v0.10.13

tar zxvf lua-nginx-module-0.10.13.tar.gz

wget -c http://zlib.net/zlib-1.2.11.tar.gz

tar zxvf zlib-1.2.11.tar.gz

wget -c https://www.openssl.org/source/openssl-1.0.2p.tar.gz

tar zxvf openssl-1.0.2p.tar.gz

wget -c https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz

tar zxvf pcre-8.42.tar.gz

wget -c http://nginx.org/download/nginx-1.12.2.tar.gz

tar zxvf nginx-1.12.2.tar.gz

cd nginx-1.12.2

./configure --prefix=/opt/nginx --add-module=../ngx_devel_kit-0.3.0 --add-module=../lua-nginx-module-0.10.13 --with-openssl=../openssl-1.0.2p --with-zlib=../zlib-1.2.11 --with-pcre=../pcre-8.42 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module

make

make install


软连接或者添加环境变量

nginx报错: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory

可以执行:

ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

或者添加环境变量:

echo 'export LD_LIBRARY_PATH=/opt/luajit/lib:$LD_LIBRARY_PATH' >> /etc/profile

source /etc/profie


验证

vim /opt/nginx/conf/nginx.conf

#在nginx.conf中,server->location配置

location /hello {

default_type 'text/plain';

content_by_lua 'ngx.say("hello, lua")';

}


Server Racks In Data Center.

启动nginx

/opt/nginx/sbin/nginx

访问

http://[服务器IP]/hello

可以看到

hello, lua

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月19日

热门专题

卓越综合高中|卓越综合高中
卓越综合高中
小程序开发|微信小程序,小程序开发,小程序,小程序制作,微信小程序开发,小程序公司,小程序开发公司,分销,三级分销系统,分销系统
小程序开发
云南开放大学|云南开放大学报名,云南开放大学报考,云南开放大学,什么是云南开放大学,云南开放大学学历,云南开放大学学费,云南开放大学报名条件,云南开放大学报名时间,云南开放大学学历,云南开放大学专业
云南开放大学
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
国家开放大学|国家开放大学报名,国家开放大学报考,国家开放大学,什么是国家开放大学,国家开放大学学历,国家开放大学学费,国家开放大学报名条件,国家开放大学报名时间,国家开放大学学历,国家开放大学专业
国家开放大学
易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招
云南高职单招|云南单招,云南单招网,云南高职单招网,云南高职单招,云南单招学校,云南单招培训
云南高职单招
APP开发|app开发_app开发公司_app软件开发_专业app开发_云南app开发公司_app定制_原生app开发定制
APP开发

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部