IT정보사전

[Apache] Ubuntu Apache2 Vhost(가상호스트)로 도커 컨테이너 연결 설정 방법 본문

IT정보

[Apache] Ubuntu Apache2 Vhost(가상호스트)로 도커 컨테이너 연결 설정 방법

작은나무0530 2024. 5. 30. 22:57
728x90
반응형

안녕하세요~ 작은나무입니다!

apache2를 설치하면 기본 웹 사이트 루트(/var/www/html) 폴더가 지정이 되고 기본 페이지(index.html)에 접근 할 수 있게 되는대요 apache Vhost를 이용하면 여러 개의 웹 서비스를 실행 할 수가 있습니다.

/var/www/html 디렉토리를 통해 서비스하는 웹 사이트의 apache2 가상 호스트 기본 설정 파일(/etc/apache2/sites-enabled/000-default.conf)입니다.

1. docker-compose로 Docker Image 컨테이너 실행
docker-compose를 이용해서 Spring Boot 프로젝트의 Docker 이미지를 컨테이너 실행합니다.

~$ docker-compose up -d
# -d : 백그라운드 실행

2. Apache2 Reverse Proxy 설정
Apache2를 Reverse Proxy로 설정해서 8080 포트로 들어오는 요청을 Docker 컨테이너 Spring Boot로 전달하기 위해 필요한 모듈을 활성화 합니다.

~$ sudo a2enmod proxy
~$ sudo a2enmod proxy_http

3. Apache2 Vhost(가상 호스트) 파일 수정
Vhost 파일(/etc/apache2/sites-available/000-default.conf)을 열어서 아래와 같이 설정을 추가 합니다.

~$ sudo vi /etc/apache2/sites-available/000-default.conf

ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

4. 설정 파일 테스트 및 Apache2 재시작
설정 파일에 오류가 없는지 테스트하고 apache를 재시작합니다.

~$ sudo apache2ctl configtest
~$ sudo systemctl restart apache2

이제 퍼블릭 IPv4 주소를 브라우저에 입력하면 Spring Boot 어플리케이션이 실행되는 것을 확인할 수 있습니다.

5. 도메일 설정하기
도메인을 설정해서 해당 서버의 IP 주소로 포워딩하도록 설정합니다.
※ 저는 별도로 도메인을 구매해서 가지고 있지 않아서 window host 파일을 수정해서 강제로 연결 

메모장을 관리자 권한으로 실행하고 다음 경로(C:\Windows\System32\drivers\etc\hosts)의 파일을 열어 위와 같이 수정합니다. 그리고 다시 브라우저에 IP가 아닌 도메인 주소(www.smalltree.com)을 입력하면 아래와 같이 연결되어 서비스 되는 것을 확인 하실 수 있습니다.

감사합니다.

728x90
반응형
그리드형
Comments