발단
- Nginx(설치형) Docker-Compose 서비스 연결하려고 함
- 셋팅후 경로 리다이렉션 설정 까지 마무리
- 근데 자꾸 원하는 경로가 아닌 / 로 리다이렉션됨
- 처음에는 문법이 꼬인줄 알고 3일 내내 문법을 검사함
- 알고보니 docker-compose에 네트워크가 독립된 네트워크 서비스를 만들어서 사용하고 있었음
- docker compose 네트워크를 host.docker.internal로 하여 호스트의 ip를 사용하도록 변경
- 그런데도 안됨 뭐지?
- 혹시나 하는 심정으로 nginx -s reload가 아닌 아예 껐다 키는 방식으로 해봄
- 그러니까 됨!
- 디테일한 내용은 보충할것
의문점
- 독자적인 도커 네트워크를 사용하면 외부에서 접근이 불가능한가?
- 그렇다고 알고 있긴 함
- 잘못 알고 있었음 도커 컴포즈를 이용하면 독자적인 네트워크가 구성되고
이를 사용해서 컴포즈내의 서비스에서 다른 서비스에 이름으로 접근이 가능해지는것
- 네트워크 종류는 브릿지, vlan, host, none등 여러가지가 있지만 기본적으로 브릿지 사용
- 그럼 host.docker.internal을 사용하면 도커가 호스트에 접근이 가능해지는걸로 알지만
외부에서 도커 내부 컨테이너를 찾을수 있는게 아닌데 뭐지?
- 정확하게는 도커가 호스트의 서비스에 접근할때 사용되는것
- mac, window에서는 기본지원이지만 linux에서는 기본적으로 지원되지 않고 설정을 따로 해주어야 한다고 함
- 컨테이너에서 호스트에 로컬 서비스나, 데이터베이스에 접근할때 유용
- 개발용으로만 쓰고 제품용으로 사용하기엔 위험함 → 호스트에 직접 접근이 가능하기 때문.
- 왜 nginx에서 reload로는 바뀐 리다이렉션 설정이 먹히지 않았는가?
- 24.09.19 추가적으로 자기 자신의 도메인명을 조회하면 접근을 못하는 이슈 발생
- 컨테이너에 hosts파일에 도메인명 등록이 안되있었음
- 근데 심지어 idc서버도 등록이 안되어있었음…
- 일단 임시방편으로 수작업으로 컨테이너 내부의 host파일 수정
- 앞으로 배포시에는 host 파일 속성값 추가해서 배포하자…