2017-12-29 14 views
1

"업스트림 서버에서 잘못된 응답을 받았습니다 "오류가 발생합니다."Dockerized Kong을 사용하여 REST 끝점에서 데이터를 가져 오는 중"업스트림 서버에서 잘못된 응답을 받았습니다 "Dockererized Kong

내 로컬 호스트에서 Kong을 (를) 사용하여 액세스하려는 REST 서비스가 실행 중입니다. 홍콩을 통해

curl -i -X POST \ 
--url http://localhost:8001/apis/ \ 
--data 'name=ping' \ 
--data 'upstream_url=http://localhost:8080/v1/employee/ping' \ 
--data 'hosts=localhost' 

앞으로 요청 :

홍콩 요청 API를 추가하는 내가 홍콩을 통해 요청을 전달에 무엇입니까

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

오류 :

[[email protected] 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 

하는 데 도움하세요 나는이 문제를 해결하려고한다.

덕분에, 카말

답변

2

나는 당신이 도커 함께 시작할 때 당신이 얻을 고전 IP/호스트 문제로 실행하고 생각합니다. 여기서 핵심은 도킹 된 Kong이 도커 컨테이너 내부에서 localhost에 도달 할 수 있도록주의를 기울여야한다는 것입니다. 여기서 문제는 Kong (도커 안쪽)이 http://localhost:8080에 액세스하려고한다는 것입니다. 그러나 Kong의 경우, 그것은 그것이 실행되고있는 컨테이너입니다.

이러한 종류의 테스트를 수행하려면 로컬 컴퓨터의 IP 주소를 찾아서 upstream_url으로 추가해야합니다. 컴퓨터가 어디에 있는지, 홈 네트워크 또는 회사 네트워크에 따라 달라지면 10.x.y.z 또는 192.168.x.y이됩니다. ifconfig (macOS) 또는 ipconfig (Windows) 명령을 사용하면 해당 주소를 찾는 데 도움이됩니다. 대신이 IP를 사용하면 Kong이 자신의 포트 8080으로 이동하는 대신 로컬 컴퓨터의 포트 8080을 확인할 수있게됩니다.

이렇게하면 변경할 때마다 Kong에서 API를 다시 구성해야합니다. 귀하의 컴퓨터의 IP 주소. 랩탑인지, DHCP를 사용하는지 여부 등에 따라 다소 차이가 날 수 있습니다.


TL; DR은 : 업스트림 URL은 도커 컨테이너 내부에서 본 대상 를 해결하기 위해 홍콩을 가능하게하는 URL이어야합니다.