我已经成功安装了 Kong 并通过 Kong 提供的管理服务映射了一个 API,如下所示:
http://kong:8001/apis
payload:
{
"upstream_url": "http://test.suraj.com:9110/"
"strip_request_path": true
"request_path": "/services_test"
"preserve_host": false
"name": "services_test"
"request_host": "test.suraj.com"
}
我可以在对http://kong:8001/apis.
现在我正在尝试使用 kong 访问我的 API 端点,例如:
http://kong:8000/services_test/test.json
其返回 404 "requested resource not found" 。
我做错了什么?我无法访问 kong 的日志。谁能告诉我kong在哪里存储日志文件?谢谢你的帮助。PS:所有网址都是虚拟的。
我们在 Kong API 网关后面有多个微服务实例,我们希望在其中平衡用户请求的负载。
假设微服务 1 在多个实例中相乘,这些实例保留在 KONG API 网关后面;在这种情况下,来自用户 1 的请求应命中第一个实例,而来自用户 2 的请求应根据其可用性(负载平衡)命中相同服务的其他实例。(即)我是否可以为 kong 中的单个 API 拥有多个上游 URL。我们不想使用 nginx 进行负载平衡。请建议我们如何解决它。
我正在开发一个基于node.js微服务的应用程序。开发了各个微服务,包括已经处理过身份验证,授权和注册过程的微服务。我正在审查使用kong作为api网关,但是正在寻找有关如何通过kong处理身份验证等方面的说明,但是仍然使用我已经创建的用户服务,该用户服务已经具有关联的数据库。
理想情况下,如果允许kong将身份验证信息传递给用户服务以验证用户的登录凭据(用户名和密码),并让kong生成jwt令牌(如果身份验证成功),我将更愿意。
kong是否可能实现此功能,或者我是否必须以某种方式将所有此功能移至kong,身份验证,授权和注册?
我发现以下文章概述了使用自定义身份验证服务器的方法,但这似乎很复杂:Kong API Gateway中的自定义身份验证服务。
简而言之,我希望用户将用户名/密码组合传递给kong,该kong将以某种方式上游传递给我已经拥有的用户服务的端点。然后,这将验证用户并确认或拒绝用户/密码正确。从这一点开始,kong将生成jwt并返回给用户。如果可能的话,那就太好了。如果我有一个实现自定义授权服务的工具,它也可以正常工作,但绝对不是首选。:-)
我按照官方安装指南安装了kong。现在开始我应该给kong.conf文件?我找不到它在哪里。
kong start [-c /path/to/kong.conf]
谁能帮我从所有可用选项(如 Tcp Log、Udp Log、Http Log、File Log、Syslog、Statsd、Loggly 等)中选择一个可以利用现有 ELK 堆栈日志的 Kong API Gateway 日志插件?
我在 Kubernetes 集群上安装了 Kong,使用 kubernetes-ingress-controller 功能(https://github.com/Kong/kubernetes-ingress-controller)。
我想删除以下 Kong 的相关标题:
我通过应用以下 KongPlugin 资源尝试使用响应转换器插件:
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: kong-response-transformer
config:
remove:
headers:
- "X-Kong-Upstream-Latency"
- "X-Kong-Proxy-Latency"
- "Via"
- "Server"
plugin: response-transformer
Run Code Online (Sandbox Code Playgroud)
但只有“服务器”标头从响应中删除。有没有办法通过使用一些自定义资源以“kubernetes-ingress-controller”方式从响应中删除此类标头?
我发现了几个与此问题相关的 GitHub 问题(1、2),但所有这些问题都涉及更新 Kong 配置文件(/etc/kong/kong.yml)的可能性,老实说,我不知道如何应用此类更改在我的 Kubernetes 环境中。将以下行传递到 ConfigMap 并不能解决问题:
# Add additional response headers
header_filter_by_lua_block {
kong.header_filter()
ngx.header["Server"] = nil
ngx.header["Via"] = nil
ngx.header["X-Kong-Proxy-Latency"] = nil
ngx.header["X-Kong-Upstream-Latency"] = nil
}
Run Code Online (Sandbox Code Playgroud)
这有什么帮助吗?谢谢...
编辑:Kong 版本是 2.0.3,kong-ingress-controller 版本是 0.8.1。
我已经使用 yaml 文件在 3 节点 k8s 集群(裸机)上安装了 kong-ingress-controller (您可以在问题底部看到该文件),并且一切都已启动并运行:
$kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default bar-deployment-64d5b5b5c4-99p4q 1/1 Running 0 12m
default foo-deployment-877bf9974-xmpj6 1/1 Running 0 15m
kong ingress-kong-5cd9db4db9-4cg4q 2/2 Running 0 79m
kube-system calico-kube-controllers-5f6cfd688c-5njnn 1/1 Running 0 18h
kube-system calico-node-5k9b6 1/1 Running 0 18h
kube-system calico-node-jbb7k 1/1 Running 0 18h
kube-system calico-node-mmmts 1/1 Running 0 18h
kube-system coredns-74ff55c5b-5q5fn 1/1 Running 0 23h
kube-system coredns-74ff55c5b-9bbbk 1/1 Running 0 23h
kube-system etcd-kubernetes-master 1/1 Running 1 23h
kube-system …Run Code Online (Sandbox Code Playgroud) 请在使用Dockerized Kong从REST端点获取数据时收到“从上游服务器收到无效响应”错误消息,请为我提供帮助。
我试图使用Kong访问的REST服务正在本地主机上运行。
要求添加API:
curl -i -X POST \
--url http://localhost:8001/apis/ \
--data 'name=ping' \
--data 'upstream_url=http://localhost:8080/v1/employee/ping' \
--data 'hosts=localhost'
Run Code Online (Sandbox Code Playgroud)
通过Kong转发请求:
curl -i -X GET \
--url http://localhost:8000/ \
--header 'Host:localhost'
Run Code Online (Sandbox Code Playgroud)
我通过Kong转发请求时出错:
[root@c1c865250782 etc]# curl -i -X GET --url http://localhost:8000/ --
header 'Host:localhost'
HTTP/1.1 502 Bad Gateway
Date: Fri, 29 Dec 2017 08:53:40 GMT
Content-Type: text/plain; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: kong/0.11.2
An invalid response was received from the upstream server
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题。
谢谢,卡玛尔
我正在研究微服务架构。我想在前端实现一个 kong API 网关。我不想进入 kong admin API 并手动添加所有公开的 API。我可以借助任何服务发现实现(例如 eureka)来将我的 API 自动配置为 Kong 吗?
我按照教程https://docs.konghq.com/install/docker/?_ga=2.46631079.1600317329.1601919139-2083746525.1601653016
在 Docker 中运行 Kong API 网关
docker network create kong-net
docker run -d --name kong-database --network=kong-net -p 5432:5432 -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" -e "POSTGRES_PASSWORD=kong" postgres:9.6
docker run --rm --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_PG_USER=kong" -e "KONG_PG_PASSWORD=kong" -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" kong:latest kong migrations bootstrap
docker run -d --name kong --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_PG_USER=kong" -e "KONG_PG_PASSWORD=kong" -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" -e "KONG_PROXY_ERROR_LOG=/dev/stderr" -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" -p 8000:8000 -p 8443:8443 -p 127.0.0.1:8001:8001 -p …Run Code Online (Sandbox Code Playgroud) kong ×10
api-gateway ×2
docker ×2
kong-ingress ×2
kubernetes ×2
api ×1
elk ×1
gateway ×1
java ×1
jwt ×1
kong-plugin ×1
node.js ×1
spring-boot ×1
windows ×1