gpt4 book ai didi

java - Dockererized Kong 在 Windows 上给出 "An invalid response was received from the upstream server"

转载 作者:可可西里 更新时间:2023-11-01 09:50:46 43 4
gpt4 key购买 nike

请帮助我,因为我在使用 Dockerized Kong 从 REST 端点获取数据时收到“从上游服务器收到无效响应”错误。

我尝试使用 Kong 访问的 REST 服务正在我的本地主机上运行。

Kong 请求添加 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'

通过 Kong 转发请求:

curl -i -X GET \
--url http://localhost:8000/ \
--header 'Host:localhost'

我通过 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

请帮我解决这个问题。

谢谢,卡马尔

最佳答案

我认为您遇到了在开始使用 Docker 时遇到的经典 IP/主机问题。这里的关键是你必须注意让你的 dockerized Kong 能够到达你的 localhost 从 docker 容器内部。这里的问题(很可能)是 Kong(在 docker 内部)试图访问 http://localhost:8080。但对于 Kong 来说,这是它自己运行的容器。

要进行此类测试,您必须找到本地计算机的 IP 地址并将其添加为 upstream_url。根据您的机器所在的位置,是在家庭网络中还是在公司网络中,它类似于 10.x.y.z192.168.x.y。命令 ifconfig (macOS) 或 ipconfig (Windows) 将帮助您找到该地址。通过使用此 IP,Kong 现在可以解析您本地计算机的端口 8080,而不是转到它自己的端口 8080。

请注意,这意味着每次更改机器的 IP 地址时,您都需要在 Kong 中重新配置 API。取决于它是笔记本电脑,还是您使用 DHCP 等,这种情况或多或少会出现。


tl;dr:上游 URL 必须是一个能够让 Kong 解析目标的 URL,从 Docker 容器内部看

关于java - Dockererized Kong 在 Windows 上给出 "An invalid response was received from the upstream server",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48020283/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com