问题标签 [kong]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - Docker - 检查 postgres 是否准备好
我有一个Kong API Gateway容器和一个postgres容器,我需要在运行迁移之前检查 postgres 是否已从 Kong 容器启动并准备就绪。我正在考虑将 postgres 客户端实用程序安装到基于官方 Kong 映像的自定义映像中,RUN yum install postgresql -y && yum clean all
在我的 Dockerfile 中使用并使用psql
或pg_isready
来实现此目的。我创建了一个polling
使用空密码调用的 postgres 用户,专门用于通过这两个实用程序检查服务器的状态。它们都不起作用。
我尝试从自定义 Kong 图像执行这些命令:
psql。该命令
psql -h postgres -U polling -w -c '\l'
失败并出现错误psql: fe_sendauth: no password supplied
。但是用户没有密码。我究竟做错了什么?此处描述了使用 psql 检查服务器是否准备就绪的完整 shell 脚本。pg_isready。我不知道如何将此实用程序单独安装到基于官方 Kong 图像的自定义图像中,该图像又基于
centos:7
图像,postgresql
包不包含pg_isready
. 仅安装了这些实用程序,并且可以在/usr/bin
:pg_config
,pg_dump
,pg_dumpall
,pg_restore
,中找到这些实用程序psql
。如何安装pg_isready
?我不想在 Kong 映像中安装完整的服务器。
nginx - 如何将请求的 URL 从 Kong API 网关转发到后端 API 微服务
我正在寻找一种将客户端请求的 URL 转发到 Kong API 网关到我的 API 微服务的方法。例如,如果我kongw.com
指向我的 Kong 网关,我想将整个域转发到我的微服务。
另一个例子:
客户正在请求mysubdomain.kongw.com/orders/list
。我希望我的微服务知道请求的整个 URL。
我发现我可以配置 Nginx 以使用其 server_name 通配符获取 URL。但是通配符什么也没返回。X-Wholerequest
我想通过向请求添加参数来将结果发送到我的微服务。但它没有用。
配置 Nginx 的正确方法是什么?有没有其他方法可以处理Kong的这种情况?
node.js - kong 集成微服务的用户注册+认证
我正在开发基于 node.js 微服务的应用程序。开发的各个微服务包括已经处理身份验证、授权和注册过程的微服务。我正在审查使用 kong 作为 api 网关,但我正在寻找关于如何通过 kong 处理身份验证等的清晰度,但仍然使用我已经创建的用户服务,该服务已经有一个与之关联的数据库。
理想情况下,如果我可以让 kong 将身份验证信息传递给用户服务以验证用户的登录凭据(用户名和密码),并让 kong 在身份验证成功的情况下生成 jwt 令牌,我会更愿意。
kong 可以做到这一点,还是我必须以某种方式将所有这些功能转移到 kong、身份验证、授权和注册?
更新
我发现以下文章概述了使用自定义身份验证服务器的方法,但这似乎涉及很多:Kong API Gateway 中的自定义身份验证服务。
简而言之,我希望用户将用户名/密码组合传递给 kong,kong 会以某种方式向上游传递到我已经拥有的用户服务的端点。然后,这将验证用户并确认或拒绝用户/通行证是正确的。从这一点开始,kong 将生成 jwt 并返回给用户。如果这是可能的,那就太好了。如果我有一个自定义授权服务,它也可以工作,但绝对不是首选。:-)
kong - Tyk 与 Kong 之间是否有全面的比较?
我一直在开发微服务(Spring Cloud)一段时间(大约 2 年)并大量使用 Netflix Zuul。虽然它提供了许多功能和出色的特性,但我的开发人员的思想却转向了解替代方案并开始了解 Tyk 和 Kong。
从各个文档和博客中阅读,我了解到或多或少都提供了相似的功能。我想知道两者之间的全面比较以及您实施的任何实际示例将有助于理解。
rest - Kong - 如何将 api 与特定的 jwt 消费者相关联
我们有启用了 JWT 身份验证的 Kong API 网关。我们定义了两个消费者。我们希望将我们的某些 API 的访问权限限制为这些消费者之一。我们怎么能做到这一点?
kong - 使用 Docker 初始化 Kong API 网关
有什么方法可以在启动容器之前配置 Kong 吗?
例如,在 MySQL 映像中,您可以挂载 SQL 脚本,/docker-entrypoint-initdb.d/
它们将第一次运行以初始化数据库。
为了初始化 Kong,现在我在启动后立即使用 curl 调用启动 bash 脚本,但感觉非常hacky。
有什么类似于 MySQL 的程序来初始化 kong 吗?
nginx - Kong - 验证上游 ssl (ssl_proxy on)
我已经成功地为一个 API 安装了 kong 网关,该 API 通过上游到多个目标(应用程序服务器)进行负载平衡。
现在,我的应用程序服务器有一个自签名证书, kong 和 targets 之间的 ssl 握手应该失败。我推断 kong 不验证上游证书。
经过一些研究,我发现ssl_proxy on;
nginx 的配置可以做到这一点。
我想在 openresty 中找到一个等效的东西来验证上游的 ssl 证书。
解决方案可能是修改 kong nginx 配置以激活ssl_proxy
但在同一实例上使用不同目标时很糟糕。
socket.io - 通过 Kong 代理的 Socketio - 客户端连接不断关闭
概括
客户端套接字连接不断断开,重新连接,断开连接,......等等
重现步骤
我使用 Kong ( https://github.com/Kong/kong ) 作为 API 网关。websocket服务器通过Kong代理
- Websocket服务器:http: //192.168.99.100 :9696
- 香港代理:
- 服务器: http: //192.168.99.100 :9000
- 接口:
- 上游: http: //192.168.99.100 :9696
- URI:/api/socket.*
- 剥离 uris: 是
附加详细信息和日志图片中:左侧终端是服务器,右侧是客户端。客户端日志显示:
engine.io-client:socket socket close with reason: "transport close" +6s
socket.io-client:manager onclose +1ms
socket.io-client:manager cleanup +0ms
socket.io-client:socket close (transport close) +0ms
P / s:尝试使用nginx代理而不是Kong,它工作正常,客户端套接字连接保持不变。
ubuntu - 如何开始康?
当我尝试在 Ubuntu 中启动 Kong 时出现以下错误
我错过了什么吗?
ssl - 在反向代理后面使用 Keycloak:无法打开管理员登录页面,因为内容混合
所以我在让 keycloak 3.2.1 在 kong (0.10.3) 后面工作时遇到了问题,kong 是一个基于 nginx 的反向代理。
场景是:
我通过我的网关路由调用 keycloak https://{gateway}/auth
,它向我显示了带有 keycloak 徽标的入口点,链接到管理控制台等 - 到目前为止一切都很好。
但是,当单击管理控制台 -> 调用https://{gateway}/auth/admin/master/console/
时,keycloak 会尝试通过 http 加载其 css/js(请参见下面的屏幕截图),因为混合内容,我的浏览器会阻止它。
我四处搜索,发现了这个线程:keycloak apache server configuration with 'Mixed Content' questions that lead to this github repo:https ://github.com/dukecon/keycloak_postgres_https
从那里开始,我尝试将它的 cli 成功集成到我的 dockerfile 中(没有更改文件的内容,只是将它们复制到我的 repo 中并从 dockerfile 添加/运行它们)。这是我现在的 dockerfile:
所以我现在没有想法,希望你能帮助我:
我如何告诉 keycloak 通过 https 调用它的 css 文件?
我是否必须更改 cli 脚本中的某些内容?
这是脚本的内容:
配置文件:
和批处理.cli:
可能也很有趣,kong 部署在 openshift 上,其路由使用从 http 到 https 的重定向( "insecureEdgeTerminationPolicy": "Redirect" )。