[Java&Web] - [WEB] Apache와 Tomcat 연동하기
Apache와 Springboot 연동(mod_proxy)
Web Server로써 Apache를 Springboot의 내장 Tomcat과 연동하는 작업을 mod_proxy 방식을 사용하여 진행해보았다. mod_proxy 방식은 mod_jk방식에 비해 속도가 느리고, URL에 따른 설정이 힘들지만 별도 모듈 설치가 필요하지 않아 설정이 간단하고 Reverse Proxy를 사용하는 특징이 있다.
Apache의 httpd.conf 수정
1
2
3
4
5
|
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
|
Apache의 httpd-vhosts.conf 수정
1
2
3
4
5
6
7
8
9
10
|
<VirtualHost *:80>
ServerName hello-world.com
ServerAlias hello-world.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
|
ProxyRequests는 Off할시 Reverse Proxy를 사용하고, On 할시 Forward Proxy를 사용한다. Reverse Proxy를 사용하기 위해 이 설정을 Off로 하였다.
ProxyPreserveHost는 유입되는 Host Http Request header를 Proxy Request로 사용하는 것에 관한 옵션이다. 아래 설정해 놓은 ProxyPass를 사용하기 위해서 On으로 설정하였다.
ProxyPass는 URL 매핑에 관한 옵션으로써 / 으로 들어오는 요청을 localhost:8080으로 보낸다는 옵션이다.
ProxyPassReverse는 클라이언트가 위회해서 Reverse Proxy 된 웹사이트로 접속하는 것을 방지하기 위해 response header의 정보에서 localhost:8080을 모두 /에 해당하는 주소로 변경하는 옵션이다.
Reverse Proxy란
Reverse Proxy는 클라이언트에서 내부망(Web Server)으로 들어오기 직전에 위치 함으로써, 클라이언트는 Reverse Proxy에게 요청을 보내고 Reverse Proxy는 이 요청을 내부망(Web Server)에 전달하는 통신방식이다. Reverse Proxy는 로드벨런싱과 보안적인 측면에서 장점이 있다.
출처
httpd.apache.org/docs/current/mod/mod_proxy.html
hooongs.tistory.com/333
'Java&Web' 카테고리의 다른 글
[Spring] Argument Resolver를 이용하여 Client IP 바인딩 하기 (0) | 2021.07.15 |
---|---|
[WEB] RestTemplate의 Connection Pool 설정 (2) | 2021.04.24 |
[Java] 람다식과 함수형 인터페이스(2) (0) | 2021.03.03 |
[Java] 람다식과 함수형 인터페이스(1) (0) | 2021.02.27 |
[Java] JAR, WAR 그리고 EAR (0) | 2021.02.09 |