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로
서비스 됨을 확인할수 있다.
간단하게 아래와 같은 흐름으로 정리된다.
