当前位置 : 主页 > 网络编程 > lua >

lua – 已启用Kong v1.0.2的自定义插件但未安装

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有一个适用于Kong的自定义插件,对于Kong v0.14.1工作得很好但是在我升级到v.1.0.2之后它会抛出一个错误. 使用的操作系统:macOS Mojave 在kong.conf文件中我有这个代码: log_level = debugplugin
我有一个适用于Kong的自定义插件,对于Kong v0.14.1工作得很好但是在我升级到v.1.0.2之后它会抛出一个错误.

使用的操作系统:macOS Mojave

在kong.conf文件中我有这个代码:

log_level = debug
plugins=my-custom-plugin

我试着用这个命令启动Kong:

kong start -c kong.conf

我收到此错误:

Error: /usr/local/share/lua/5.1/kong/cmd/start.lua:50: nginx: [error] init_by_lua
error: /usr/local/share/lua/5.1/kong/init.lua:344: my-custom-plugin plugin is enabled but not installed;
module ‘kong.plugins.my-custom-plugin.handler’ not found:No LuaRocks module found for kong.plugins.my-custom-plugin.handler
no field package.preload[‘kong.plugins.my-custom-plugin.handler’]
no file ‘./kong/plugins/kong-my-custom-plugin/handler.lua’…

我使用这个命令安装了插件:

luarocks make

它给出了以下输出:

my-custom-plugin 1.0-1 is now installed in /usr/local/opt/kong (license: MIT)

不知何故,似乎Kong无法找到我安装的自定义插件.知道为什么会这样吗?

@ user5377037的答案有大部分相关细节,我只想提一下,就像Kong 0.14.x一样,“custom_plugins”现在只是“插件”.

这种变化的原因之一是你现在可以使用这个新的变量名来选择加载或不加载与Kong捆绑在一起的插件 – 这对某些人来说是一个有用的功能.但是,如果要加载自定义插件和捆绑插件,则现在必须指定bundled关键字以指示您要保持捆绑插件的加载.

前0.14.x

实际效果是在< 0.14.x:

custom_plugins = plugin1,plugin2

要么

KONG_CUSTOM_PLUGINS=<plugin-name>

发布0.14.x

在Kong> = 0.14.x中,您现在写道:

plugins = bundled,plugin1,plugin2

要么

KONG_PLUGINS=bundled,<plugin-name>

如果您不使用捆绑

如果您不添加捆绑的关键字,您可能会遇到类似这样的错误:

nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:292: key-auth plugin is in use but not enabled
stack traceback:
    [C]: in function 'assert'
    /usr/local/share/lua/5.1/kong/init.lua:292: in function 'init'
    init_by_lua:3: in main chunk

这意味着您已将代理设置为使用某个插件,但现在您没有在启动时加载该插件,因此Kong不知道该做什么并退出.从本质上讲,您只会加载一个可能不是您想要的自定义插件.

lua_package_path

关于lua_package_path和KONG_LUA_PACKAGE_PATH的注释与user5377037的帖子中的注释相同.

参考

> Upgrade Documentation
> Configuration Reference

网友评论