使用的操作系统:macOS Mojave
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捆绑在一起的插件 – 这对某些人来说是一个有用的功能.但是,如果要加载自定义插件和捆绑插件,则现在必须指定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的帖子中的注释相同.
参考