当前位置: 首页 > 知识库问答 >
问题:

Kong在教程中找不到样品瓶容器

冯鸿哲
2023-03-14

我开始学习docker/KONG安装教程,他们创建了一个名为“KONG net”的网络,并启动KONG和postgresql容器。

然后我跳转到这个docker/Kong教程在香港注册一个样品烧瓶容器作为API...

在使用flask服务和相关路由配置KONG容器时,我没有看到任何令人担忧的事情。

样品瓶容器似乎工作正常:

curl http://localhost:5055/api/v1/test1
curl http://localhost:5055/api/v1/test2

我得到预期的结果:

{"message":"first end point test1 is called","status_code":200}

这些命令的结果看起来不错:curl-i-xpost--urlhttp://localhost:8001/services/--data'name=testApi'--data'url=http://localhost:5055“卷曲http://localhost:8001/routes| json_pp

一切都很好,直到我得到这个命令来测试KONG:

curl -i -X GET --url http://localhost:8000/api/v1/test1 --header 'Host: localhost'

我想香港应该把这个送到样品瓶容器里。

相反,我看到了这个错误:

HTTP/1.1 502 Bad Gateway
Date: Wed, 08 May 2019 18:20:00 GMT
Content-Type: text/plain; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Server: kong/1.1.2
X-Kong-Upstream-Latency: 1
X-Kong-Proxy-Latency: 35
Via: kong/1.1.2

An invalid response was received from the upstream server

在香港集装箱的日志中,我看到:

2019/05/08 16:56:57 [error] 38#0: *167134 connect() failed (111: 
Connection refused) while connecting to upstream, client: 
172.19.0.1, server: kong, request: "GET /api/v1/test1 HTTP/1.1", 
upstream: "http://127.0.0.1:5055/api/v1/test1", host: "localhost"
172.19.0.1 - - [08/May/2019:16:56:57 +0000] "GET /api/v1/test1 
HTTP/1.1" 502 69 "-" "curl/7.59.0"

孔似乎看不到localhost:5055。

我担心第一个教程让我创建的网络。

我尝试使用此命令停止、重建和重新运行烧瓶容器(因此烧瓶也是网络的一部分):

docker run -d --name flask  --network=kong-net -p 5055:5055  flask:test

唉,这没有帮助。同样的错误!

我打字的时候

docker network inspect kong-net

我现在看到烧瓶容器是kong net的一部分。这有必要吗?

我尝试了这个命令,它成功了:

docker exec -ti kong sh -c "curl http://172.19.0.4:5055/api/v1/test1 "
{"message":"first end point test1 is called","status_code":200}

我用Windows10/cygwin bash/docker18来做这些。09.2打开docker/kubernetes。

问题:

>

Curl-i-X GET--urlhttp://localhost:8000/api/v1/test1--head'Host:localhost'

共有2个答案

阎经武
2023-03-14

您需要注册路由:

curl -i -X POST \
 --url http://localhost:8001/services/testApi/routes \
 --data 'hosts[]=localhost' \
 --data 'paths[]=/api/v1/test1' \
 --data 'strip_path=false' \
 --data 'methods[]=GET'
燕智
2023-03-14

当Kong作为docker容器安装时,“localhost”表示Kong容器的环回地址,而不是主机。在香港注册的endpoint应可从香港容器解析

因此,您可以更改您的注册以使用后端服务的实际IP和Port,因为Kong容器可以访问,因此,如果您的后端也是docker容器,并且其端口5055映射到主机上的端口15055,则在Kong中注册应使用主机IP和端口15055。

 类似资料:
  • 我遵循教程https://docs.konghq.com/install/docker/?_ga=2.46631079.1600317329.1601919139-2083746525.1601653016 在Docker中运行API网关 错误 从Web浏览器,转到:http://localhost:8001 我还关闭了Tomcat docker

  • 连接到数据库 我在那里没有看到任何桌子,除了原木 我查看了日志,changelog已经在那里工作,并且已经创建了表。

  • 安装了SE ok,EE OK-本质上是GlassFish4。在安装Netbeans时,教程中指示我不要安装glassfish,当使用Netbeans完成时,请将glassfish添加到Netbeans安装中。 当我这样做时,我得到以下消息(我指向@c:\glassfish4\glassfish,这是AFAIK的正确路径) 没有 ;A ;验证 ;GlassFish ;服务器 ;安装。 上周我看到另一

  • 要在没有docker的情况下运行应用程序,我首先运行"exportFLASK_APP=app",然后运行"flask run",因此我将其转移到Dockerfile。 这是运行后的错误消息 无法启动服务应用程序:b'OCI运行时创建失败:container_linux。go:348:启动容器进程导致“exec:\“flask\”:在$PATH中找不到可执行文件:未知 通过键入,我看到这个错误,容器

  • 问题内容: 我在Mac上配置了Junit-4.11,编译时没有错误,但是当我运行时,我得到了 这是我和 和我一起 和 我得到的是 我用和放在当前目录中,也把它放在/ Library / Java / Extensions中 我试图解决的问题是设置and ,但是没有用。 有人可以指出出什么问题了吗?我真的很困惑。 谢谢。 好吧,我已经通过以下步骤解决了我的问题。我的Mac是Mac OSX 10.8,

  • 我使用了dockerhub的Jenkins docker图像(https://github.com/jenkinsci/docker) docker build命令已成功执行,容器也已成功启动。 Docker build命令: Docker容器命令: 然后我通过docker run-it myjenkins bash登录到容器。我找不到像config这样的jenkins配置文件。xml,詹金斯。x