无法在 Kong 中启用会话插件(即使升级到最新版本)
Cannot enable session plugin in Kong (even after upgrading to latest)
首先,我在 ubuntu 16.04 中安装了 Kong 0.14.1(没有 docker),工作正常。
我尝试添加 'Session' 插件(按照插件页面的示例)
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;
原来是Kong文档不对,默认没有安装session插件。需要手动安装。
这些是我安装会话插件所采取的步骤:
从此处使用下载按钮下载了会话源代码:
https://github.com/Kong/kong-plugin-session
复制解压到机器运行我的Kong实例
按照下面的说明使用源安装。我尝试了 make 和 pack 以及 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 migrations up
启动了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 configuration is
invalid (exit code 1): nginx: [alert] could not open error log file:
open() “/usr/local/kong/logs/error.log” failed (13: Permission denied)
nginx: the configuration file /usr/local/kong/nginx.conf syntax is ok
首先,我在 ubuntu 16.04 中安装了 Kong 0.14.1(没有 docker),工作正常。
我尝试添加 'Session' 插件(按照插件页面的示例)
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;
原来是Kong文档不对,默认没有安装session插件。需要手动安装。
这些是我安装会话插件所采取的步骤:
从此处使用下载按钮下载了会话源代码: https://github.com/Kong/kong-plugin-session
复制解压到机器运行我的Kong实例
按照下面的说明使用源安装。我尝试了 make 和 pack 以及 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 migrations up
启动了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 configuration is invalid (exit code 1): nginx: [alert] could not open error log file: open() “/usr/local/kong/logs/error.log” failed (13: Permission denied) nginx: the configuration file /usr/local/kong/nginx.conf syntax is ok