Java&Web

[Apache] Apache와 Springboot 연동하기(mod_proxy)

프로그래민 2021. 4. 11. 11:00
반응형

[Java&Web] - [WEB] Apache와 Tomcat 연동하기

 

[WEB] Apache와 Tomcat 연동하기

[Network] Web Server와 WAS [Network] Web Server와 WAS Web Server란? 개념 하드웨어적 의미로는 Web Server가 설치되어 있는 컴퓨터 소프트웨어적 의미로는 클라이언트의 요청을 받아 정적 컨텐츠(image, html,..

minkwon4.tistory.com

 

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

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
반응형