Nginx+Lua环境搭建

直接安装

准备依赖

lua-nginx-module-0.10.13.tar.gz

ngx_devel_kit-0.3.0.tar.gz

LuaJIT-2.0.5.tar.gz

安装luajit

1
2
3
4
5
tar -zxvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5
make && make install PREFIX=/usr/soft/LuaJIT-2.0.5
export LUAJIT_LIB=/usr/soft/LuaJIT-2.0.5/lib
export LUAJIT_INC=/usr/soft/LuaJIT-2.0.5/include/luajit-2.0

准备模块

1
2
tar -zxvf lua-nginx-module-0.10.13.tar.gz
tar -zxvf ngx_devel_kit-0.3.0.tar.gz

安装nginx

1
./configure --prefix=/usr/soft/nginx --with-ld-opt="-Wl,-rpath,$LUAJIT_LIB" --add-module=/usr/soft/ngx_devel_kit-0.3.0 --add-module=/usr/soft/lua-nginx-module-0.10.13

如果编译nginx时没有加--with-ld-opt,会导致nginx在启动的时候会无法找到位于luajit内的类库,并输出如下错误信息:

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

查看nginx安装模块

1
2
cd /usr/soft/nginx
./sbin/nginx -V

测试

修改nginx配置文件conf/nginx.conf,添加如下配置

1
2
3
4
location /lua {
default_type 'text/html';
content_by_lua 'ngx.say("hello world")';
}

启动nginx

1
./sbin/nginx

通过curl访问http://localhost/lua后,nginx返回hello world则说明nginx+lua环境搭建完成。

通过OpenResty安装

准备OpenResty

OpenResty集成了nginx与大量精良的Lua库、第三方模块和大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。

下载OpenResty

笔者使用的是
openresty-1.13.6.1.tar.gz

安装OpenResty

1
2
3
4
tar -zxvf openresty.tar.gz
cd openresty-1.13.6.1
./configure --prefix=/usr/soft/openresty
make && make install

目录说明

openresty/luajit:luajit环境,luajit类似于java的jit,即即时编译,lua是一种解释语言,通过luajit可以即时编译lua代码到机器代码,得到很好的性能

openresty/lualib:要使用的lua库,里边提供了一些默认的lua 库,如 redis,json库等,也可以把一些自己开发的或第三方的放在这

openresty/nginx:nginx安装路径

查看nginx安装模块

1
2
cd /usr/soft/openresty/nginx
./sbin/nginx -V

测试

修改nginx配置文件conf/nginx.conf,添加如下配置

1
2
3
4
location /lua {
default_type 'text/html';
content_by_lua 'ngx.say("hello world")';
}

启动nginx

1
./sbin/nginx

通过curl访问http://localhost/lua后,nginx返回hello world则说明nginx+lua环境搭建完成。

>