[英]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.