簡體   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