2017-12-06 23 views
1

설정 : 내 모든 맥 OS에서 실행되는 다음다른 포트에서 localhost 응용 프로그램을 인식하도록 nginx 도킹 장치 컨테이너를 구성하는 방법은 무엇입니까?

로컬 호스트 : 8089 a nodejs REST api runing in my local, OUTSIDE of the nginx container, stand alone!

locahost : 80 nginx docker container

내가는 Nginx에 고정 표시기 용기 내부의 정적 파일을 제공 할 수 있었다 그러나 때 내가 , 어떤 이유로

http { 
    server { 
     location/{ 
      root /usr/share/nginx/html; 
     } 
     location /api/ { 
      proxy_pass http://localhost:8089; 
     } 
    } 
} 

에 직접 가정 어떤 localhost:80/api 전화 :로 nginx를위한 설정을 설정전화가 왔습니다 404가 없습니다. 찾음 페이지

404 Not Found 

nginx/1.13.6 

구성이 잘못되었습니다. 아마 localhost:8089을 nginx 내부에 사용해서는 안될까? 그렇다면 무엇을 사용해야합니까?

https://github.com/adamchenwei/docker-nginx-playground

답변

1

컨테이너가 자신의 네트워크 네임 스페이스/네트워킹 스택을 여기에서 찾을 수 있습니다. 따라서 컨테이너 내부의 localhost은 컨테이너 자체의 로컬 호스트입니다.

Mac 용 Docker를 실행하는 경우 호스트 자체에서 실행되는 서비스에 연결할 수있는 컨테이너 내부에서 사용할 수있는 특별한 호스트 이름이 있습니다. 자세한 내용은이 답변을 참조하십시오. https://stackoverflow.com/a/43541732/1811501

Linux에서 Docker를 실행하는 경우이 질문에 대한 답변을 통해 연결할 IP 주소를 찾을 수 있습니다. https://stackoverflow.com/a/31328031/1811501