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

我有一个适用于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

相关文章

1.进入lua官网http://www.lua.org/ 2.点击download 3.点击get a binary 4.点击[Lua - joedf&#39;s ...
    Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型...
    并发是现实世界的本质特征,而聪明的计算机科学家用来模拟并发的技术手段便是多任务机制。大致上...
    Lua5.0的语法非常简洁,这从参考手册中的语法定义的规模(转换成标准BNF形式大概有100个左右的产...
LUA脚本文档中文翻译(基础)   介绍   Lua读作“鹿啊”,是一种据创作者说的类Pascal脚本语言。巴西...
1. 函数的使用 以下程序演示了如何在Lua中使用函数, 及局部变量 例e02.lua -- functions function pyth...