使用的操作系统: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