![](/img/trans.png)
[英]Proxy Error 502 : The proxy server received an invalid response from an upstream server
[英]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.xyz
或192.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.