如何在 K8s 环境中自动管理网关服务器(使用 OpenResty Edge)
使用 LuaRocks
Arnaud Brousseau , 2016 年 11 月 16 日(创建于 2011 年 8 月 7 日)警告!此页面已过时。强烈建议不要在 OpenResty 中使用 LuaRocks,因为 OpenResty 提供了自己的包管理器,OPM。
此示例演示了LuaRocks 与 OpenResty 的用法。它已在 Linux 和 Mac OS X 上进行测试,使用标准 Lua 解释器或 LuaJIT。
LuaRocks 是 Lua 模块的部署和管理系统。LuaRocks 允许将 Lua 模块安装为独立的包,称为“rocks”,这些包还包含版本依赖信息。
我们假设您已将 OpenResty 安装到默认位置,即 /usr/local/openresty
。您可以根据实际的 OpenResty 安装前缀调整此示例中的路径。如果您尚未安装 OpenResty,请查看 下载 和 安装 页面。
安装 LuaRocks
首先,让我们安装 LuaRocks
从 https://luarocks.org/releases 下载 LuaRocks 压缩包。截至撰写本文时,最新版本是 2.3.0
,但我们将使用 2.0.13
确保与本示例的兼容性。
wget http://luarocks.org/releases/luarocks-2.0.13.tar.gz
tar -xzvf luarocks-2.0.13.tar.gz
cd luarocks-2.0.13/
./configure --prefix=/usr/local/openresty/luajit \
--with-lua=/usr/local/openresty/luajit/ \
--lua-suffix=jit \
--with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1
make
sudo make install
使用 LuaRocks 安装 Lua MD5 库
在本示例中,我们将使用 Lua MD5 库作为示例,因此让我们使用 LuaRocks 安装它
sudo /usr/local/openresty/luajit/luarocks install md5
已知问题
在 OpenResty 1.0.4.2rc10 之前,已知启用 lua_code_cache
会导致 LuaRocks 在 Lua Nginx 模块 上抛出以下异常,在 error.log
中
lua handler aborted: runtime error: stack overflow
如果您使用的是 OpenResty 1.0.4.2rc10 之前的任何版本,请考虑升级。