[VM & Docker] 외부 ip로 VM접속 불가

Infinity-blue·2023년 10월 24일
0

Problem

Django 서버와 Nginx를 도커 컨데이너화 하여 GCE(Google Compute Engine) VM에 호스팅 하였다. 그러나 VM 외부 IP주소로 서버 접속이 불가하였다.

Troubleshooting & Solution

1. Docker 컨테이너가 돌아가고 있는 지 확인.

docker ps

2. 도커 로그 확인.

docker logs <  도커 컨테이너 이름 >

3 nginx.conf 코드 재검토 -> syntax error가 없음을 확인.

 nginx -t

4 Firewall의 HTTP/HTTPS 포트가 Docker 컨테이너의 포트와 같은지 확인.

5 Firewall HTTP와 도커의 포트를 8000에서 80으로 변경.

6 "Cannot be reached" 오류는 사라졌지만 "Welcome to Nginx" 메시지만 뜸.

7 장고와 Nginx 도커 컨데이너가 같은 네트워크 상에 있음을 확인.

 - docker network ls
 - docker network inspect < network name >

-> "bridge"라는 같은 네트워크 상에 존재함을 확인.

8. VM의 도커 컨테이너 내부에 접속.

docker exec -it < container name > /bin/bash

9. "/etc/nginx/conf.d/" 폴더를 확인한 결과 내가 만든 "nginx.conf" 파일내용이 보이지 않음. "default.conf"라는 기본 설정된 코드만 보인다. "nginx.conf" 파일이 제대로 적용되지 않은 듯 하다.

10. "default.conf"를 다른 이름으로 수정하고 "nginx.conf"의 코드를 새로 만든 "default.conf"에 복사 후 붙여넣기 하였다.

11. "nginx -t"로 syntax error 수정 후 새로고침을 함으로서 문제를 해결하였다.

nginx -s reload

Conclusion

"Welcome to Nginx" 메시지가 화면에 보일 시 본인이 커스텀화 해놓은 nginx 설정 파일이 기본으로 nginx에 내재되어 있는 "default.conf"를 오버라이딩 하지 못함으로서 일어나는 문제다.
-> "default.conf"를 수정.
"Cannot be reached" 로 접속이 아예 불가할 시 네트워크 설정을 재검토하자.

0개의 댓글