无法在 Kong 中启用会话插件(即使升级到最新版本)

Posted

技术标签:

【中文标题】无法在 Kong 中启用会话插件(即使升级到最新版本)【英文标题】:Cannot enable session plugin in Kong (even after upgrading to latest) 【发布时间】:2019-10-09 05:15:39 【问题描述】:

首先,我在 ubuntu 16.04 中安装了 Kong 0.14.1(没有 docker)工作正常。

我尝试添加“会话”插件(按照插件页面的示例)

curl -X POST http://localhost:8001/services/1d57a271-1a70-42ac-bb37-2e60405af347/plugins \
 --data "name=session"  \
 --data "config.storage=kong" \
 --data "config.cookie_secure=false"

但它只是返回了 400 错误:

"message":"schema violation (name: plugin 'session' not enabled; add it to the 'plugins' configuration property)","name":"schema violation","fields":"name":"plugin 'session' not enabled; add it to the 'plugins' configuration property","code":2

我意识到当前版本中不包含会话插件,因此我尝试使用以下命令升级到最新版本 (1.1.2):

sudo dpkg -P kong-community-edition
wget -O kong-community-edition-1.1.2.trusty.all.deb https://bintray.com/kong/kong-community-edition-deb/download_file?file_path=dists/kong-community-edition-1.1.2.trusty.all.deb 
sudo dpkg -i kong-community-edition-1.1.2.*.deb   
sudo kong migrations up
sudo kong migrations finish

然后重启系统以确保安全。

现在当我运行以下命令时,我可以看到我使用的是最新版本 1.1.2

 dpkg -l | grep kong

但我在尝试启用包时仍然遇到同样的错误。

我在使用“sudo dpkg -P kong-community-edition”卸载 kong 时确实收到了以下错误,但我不确定如何处理此警告,或者它是否与我的问题有关。

Removing kong-community-edition (1.1.2) ...
dpkg: warning: while removing kong-community-edition, directory '/usr/local/lib' not empty so not removed
dpkg: warning: while removing kong-community-edition, directory '/usr/local/bin' not empty so not removed
dpkg: warning: while removing kong-community-edition, directory '/usr/local/share' not empty so not removed
dpkg: warning: while removing kong-community-edition, directory '/usr/local/kong' not empty so not removed

我应该更正什么才能启用会话插件?

[更新]

如果我将这一行添加到配置文件中:

plugins=bundled,session

然后,我在启动时收到此错误:

nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:402: error loading plugin schemas: on plugin 'session': session plugin is enabled but not installed;

【问题讨论】:

【参考方案1】:

事实证明,Kong 文档不正确,默认情况下未安装会话插件。需要手动安装。

这些是我安装会话插件的步骤:

    从这里下载了带有下载按钮的会话源代码: https://github.com/Kong/kong-plugin-session

    复制并解压到运行我的 Kong 实例的机器上。

    按照以下说明使用源代码进行安装。我尝试了 make 和 pack and rock 方法。从 rock 安装时,我得到了一些“/usr/local/share/lua/5.1/kong/plugins/session/*** 没有被这个 LuaRocks 安装跟踪”。警告但似乎没有引起问题: https://docs.konghq.com/1.1.x/plugin-development/distribution/?_ga=2.38394979.1991677927.1558543387-1804803425.1516137689#installing-the-plugin

    使用以下行更新了 conf 文件“/etc/kong/kong.conf”: 插件=捆绑,会话

    更新了数据库:sudo kong 向上迁移

    启动了 Kong,但现在看来我必须 sudo,否则我会收到以下错误。

/usr/local/share/lua/5.1/kong/cmd/start.lua:61: /usr/local/share/lua/5.1/kong/cmd/start.lua:37:nginx配置是 无效(退出代码 1):nginx:[alert] 无法打开错误日志文件: open() “/usr/local/kong/logs/error.log” 失败(13:权限被拒绝) nginx:配置文件/usr/local/kong/nginx.conf 语法没问题

【讨论】:

以上是关于无法在 Kong 中启用会话插件(即使升级到最新版本)的主要内容,如果未能解决你的问题,请参考以下文章

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

中台构建日志

Firefox 设置无法保存如何解决?

Kong作为重定向服务

即使启用了 GPS,也无法获取位置

微服务Kong——添加插件