Front/WebServer

[Apache] SpringBoot 내장톰캣 도메인 연결 Apache Proxy 설정

헹창 2021. 3. 15.
반응형

아파치(Apache) 설치 및 설정 내용은 다음 게시글을 참고하자.

 

[Apache] Windows 10 64bit 환경 Apache2.4 설치 및 설정

[Apache] Windows 10 64bit 환경 Apache 설치 및 설정 1. 아파치(Apache) 2.4 설치파일 다운로드 Apache VS16 binaries and modules download www.apachelounge.com 운영체제 환경이 64 bit인 경우 첫 번..

haenny.tistory.com

 

만약 도메인 연결 필요 없이 아이피로 접근이 가능하다면 AJP 로 분기하는 것이 훨씬 편하고 간편하다.

참고로 모든 전제는 SpringBoot의 내장톰캣을 사용하므로 외부 톰캣을 별도로 설치하지 않았다.

 

SpringBoot AJP 포트 설정 방법

 

[Apache] SpringBoot AJP 포트 설정하기

[Apache] SpringBoot AJP 포트 설정하기 스프링부트 웹 프로젝트이며, war 파일로 Export 했을 경우의 게시글이다. 1. AJP 포트 설정 - 이때 AJP 포트는 프로젝트가 올라가는 톰캣에서 설정한 AJP 포트와 같

haenny.tistory.com

 

Apache AJP 포트 설정 관련해서는 다음 내용을 참고하자

 

[Apache] 윈도우10 아파치 AJP 설정 및 톰캣 연동하기

[Apache] 윈도우10 아파치 AJP 설정 및 톰캣 연동하기 1. mod_jk 설치 - 접속 www.apachelounge.com/download/ Apache VS16 binaries and modules download www.apachelounge.com - 화면 좌측 상단에 본인..

haenny.tistory.com

위 내용에서 톰캣 연동할 필요는 없고, Apache 설정과 workers.properties 설정으로 프로젝트의 컨텍스트와 AJP 포트연결만해주면된다.

 

 

그럼 도메인 연결은 어떻게 할까?

 

 

물론 외장 톰캣(Tomcat)이 설치되어있다면 Hostname 설정으로 도메인을 연결하면된다.

하지만 내장톰캣을 사용하면서 외장 톰캣 설치를 안했기 때문에 Apache 만으로 도메인을 분기하려고 한다.

 

 

도메인 www.aaa.kr www.bbb.kr  모두 IP를 222.222.0.1로 연결을 했다고 가정하자.

 

IP로 접근이 가능하다면 프로젝트의 ContextPath 와 AJP 설정하여

222.222.0.1:80/프로젝트1 혹은 222.222.0.1:80/프로젝트2 로 접근하면 된다. 

 

하지만 도메인으로 분기해야하기 때문에 현재 상황에서 www.aaa.kr  혹은 www.bbb.kr  을 들어가면 아파치(Apache) 초기화면이 나올 것이다.

 

 

Apache Proxy 설정 시작하기

Apache/conf 에서 httpd.conf 를 열어 아래 주석을 풀어준다.

LoadModule proxy_module_modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

 

Apache/conf/extra 에서 httpd-vhosts.conf 파일을 열어 VirtualHost 설정을 다음과 같이 해준다.

여기서 80은 Apache로 Listen 설정한 (외부에서 접속할 수 있는) 포트이다.

 

ServerName과 ServerAlias는 실제 도메인 주소를 입력하면되고,

ProxyPass와 ProxyPassReverse 에는 현재 서버에서 돌아가고 있는 프로젝트 접속 경로를 적어주면 된다.

<VirtualHost *:80>
    ServerName www.aaa.kr
    ServerAlias aaa.kr
    ServerAlias www.aaa.kr
    ServerAlias http://www.aaa.kr
    ProxyRequest Off
    ProxyPreserveHost On
    ProxyPass / http://localhost:8081/
    ProxyPassReverse / http://localhost:8081/
</VirtualHost>

<VirtualHost *:80>
    ServerName www.bbb.kr
    ServerAlias bbb.kr
    ServerAlias www.bbb.kr
    ServerAlias http://www.bbb.kr
    ProxyRequest Off
    ProxyPreserveHost On
    ProxyPass / http://localhost:8082/
    ProxyPassReverse / http://localhost:8082/
</VirtualHost>

 

 

** 프로젝트 ContextPath 설정을 하게 되면 다음과 같은 css/js 경로 에러가 발생하니 ContextPath를 제외하고 설정해보자.

 

 

 

728x90
반응형

댓글

추천 글