nginx加lua实现

这篇博客详细介绍了如何在nginx中集成lua,从安装依赖项开始,逐步讲解下载安装nginx和lua模块,以及如何测试lua模块的成功安装。具体步骤包括创建lua脚本存储目录,编写mydata.lua文件,并对nginx.conf进行配置。在实践中,还可能会遇到安装lua_redis的相关问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装依赖项

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
# lua_jit
wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz 
tar -xvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5
make install

下载安装nginx和依赖项

cd /netease

# nginx

wget http://nginx.org/download/nginx-1.14.2.tar.gz

tar -xvf nginx-1.14.2.tar.gz

# ndk

wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.0.zip 

unzip v0.3.0.zip 

# ngx_lua 模块

wget https://github.com/openresty/lua-nginx-module/archive/v0.10.14.zip

unzip v0.10.14.zip


# 安装nginx

cd nginx-1.14.2

./configure --prefix=/usr/local/nginx-1.14.2 \

         --add-module=../ngx_devel_kit-0.3.0 \

         --add-module=../lua-nginx-module-0.10.14

测试lua模块是否安装成功

0、 创建一个文件夹存储lua脚本

mkdir /usr/local/nginx-1.14.2/lua_scripts

1、创建mydata.lua

-- mydata.lua
 local _M = {}
 
 local data = {

     dog = 3,

     cat = 4,

     pig = 5,

 }
 function _M.get_age(name)
     return data[name]
 end
 return _M

2、 nginx.conf文件


   lua_package_path "/usr/local/nginx-1.14.2/lua_scripts/?.lua;;";

    server {

        ...

        location /lua {

            content_by_lua_block {

               local mydata = require "mydata"

               ngx.say(mydata.get_age("dog"))

            }

        }

可能的错误

# 1、动态库找不到

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

# 解决办法:

echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf

ldconfig

​

# 2、warn提示

nginx: [alert] detected a LuaJIT version which is not OpenResty's; many optimizations will be disabled and performance will be compromised (see https://github.com/openresty/luajit2 for OpenResty's LuaJIT or, even better, consider using the OpenResty releases from https://openresty.org/en/download.html)

# 告诉你,你不要用这个luajit版本,可以用openresty提供的luajit优化版本,或者干脆直接用openresty

安装lua_redis

wget https://codeload.github.com/openresty/lua-resty-redis/zip/master

unzip master

cd lua-resty-redis-master

make && make install
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值