nginx_lua环境搭建

祈雨的博客

2018-12-15

nginx (opens new window)

# 直接安装

# 准备依赖

lua-nginx-module-0.10.13.tar.gz (opens new window)

ngx_devel_kit-0.3.0.tar.gz (opens new window)

LuaJIT-2.0.5.tar.gz (opens new window)

# 安装luajit

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
3
4
5

# 准备模块

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

# 安装nginx

./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
1

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

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

# 查看nginx安装模块

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

# 测试

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

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

启动nginx

./sbin/nginx
1

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

# 通过OpenResty安装

# 准备OpenResty

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

下载OpenResty (opens new window)

笔者使用的是 openresty-1.13.6.1.tar.gz (opens new window)

# 安装OpenResty

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

# 目录说明

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

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

openresty/nginx:nginx安装路径

# 查看nginx安装模块

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

# 测试

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

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

启动nginx

./sbin/nginx
1

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

Copyright © 2019-2021 祈雨

苏ICP备19058377号-1 (opens new window)

Last Updated: 2022/7/8 下午2:41:42