Apache + Tomcat , SPA

SPA 프로젝트에서.

SPA로 빌드된 정적페이지들을 WAS 를 통해 서비스 하는것이 
불필요 하다 생각되었다.

Apache + mod_jk 를 통해 Tomcat에서 서비스하는 Rest API 를 연결하고
정적리소스는 Apache 를 통해 서비스하는것을 적용해보려 한다.

#Apache 설치

# SPA 정적 리소스 맵핑

  • 추가: apache 설치 중 pcre 없는 에러 발생시 
    설치 : 참조
    mac인 경우 : brew 를 통해 pcre 설치하는게 좋다.

# Apache 실행 확인

cd [아파치 설치 경로]/bin
sudo ./httpd -k stop
sudo ./httpd -k s
httpd.conf의 Listen port가 80 이라면 localthost를 통해 확인.

# mod_jk설치

#mod_jk 설정 tomcat

현재 eclipse를 통해 Rest API서버를 서비스 중이다.
Server.xml을 참조하여 AJP 를 확인하자.
 <Connector port=”8012" protocol=”AJP/1.3" redirectPort=”8443"/>

tomcat 으로 서비스되는 Rest API 는 /api/**의 url패턴을 가지고 있다.
아래와 같이 mod_jk를 사용하여 연결하자.

# Apache + Tomcat 확인

아파치를 재시작하자

localhost/api/getUsers 같은 Rest API를 호출하면 아파치를 거쳐 tomcat으로 연결 됨을 확인할수 있다.

# All Url request to index.html for SPA

작성된 SPA가 내부적으로 Url route를 통해 화면제어될 경우
예를 들어, localhost/products/42를 요청해도 index.html을 서비스 해주어야 한다.

Apache 의 Rewrite모듈을 사용하여 제어하도록 하자.
모듈 확인 : ll [아파치 설치 경로]modules/mod_rewrite.so

아래와 같이 아파치 설정을 변경하자

# 확인

localhost/products/42를 호출해도 index.html로
서비스 됨을 확인할수 있다.

간단하게 아래와 같은 흐름으로 정리된다.

Show your support

Clapping shows how much you appreciated Circlee7’s story.