繁体   English   中英

在Windows上进行Dockererized Kong操作,显示“从上游服务器收到无效响应”

[英]Dockererized Kong on windows giving “An invalid response was received from the upstream server”

请在使用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'

通过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 /主机问题。 这里的关键是您必须注意使您被docker化的Kong能够 docker 容器内部访问localhost 这里的问题是(很可能)是Kong(在docker内部)试图访问http://localhost:8080 但是对于Kong来说,这就是它自己运行的容器。

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

请注意,这意味着您每次更改计算机的IP地址时都需要在Kong中重新配置API。 根据是笔记本电脑,还是使用DHCP或类似的设备,这种情况或多或少会经常发生。


tl; dr:上游URL必须是使Kong能够解析从Docker容器内部看到的目标的URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM