본문 바로가기

WEB/Apache

Apache & Tomcat 연동


# 테스트 환경

  • OS : Oracle Linux Server release 8.6
  • JDK : 1.8
  • Apache : 2.4.62
  • Tomcat : 9.0.89

# mod_proxy 모듈

Apache HTTP Servr에서 Forward proxy, Reverse proxy, RoadBalancer 기능을 위해 사용하는 모듈로 httpd 패키지가 설치되어 있으면 사용할 수 있는 내장 모듈이다.

 

별도의 설정이 없어도 사용할 수 있으면 특정 WAS에 의존적이지 않아 범용적으로 사용하기 편하다는 장점이 있다.

 

Client가 Reverse proxy의 namespace에 있는 콘텐츠에 대한 요청을 하게 되면 Reverse proxy 즉, apache는 해당 요청을 설정된 값에 따라 분기를 해주게 되고 분기된 요청을 받은 WAS에서 해당 요청을 처리하게 된다.

 

 

 

# apache & tomcat 연동

1. module 활성화

yum install이나 소스를 직접 컴파일하여 설치한 경우 모두 최초 설치 시 httpd.conf를 확인해 보게 되면 mod_proxy 모듈이 주석 처리가 되어 있는 것을 확인할 수 있다.

 

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule negotiation_module modules/mod_negotiation.so

httpd.conf 내부 구문 중 mod_proxy 관련 모듈 3개

 

mod_proxy 모듈을 통한 WEB&WAS 연동을 위해 해당 주석을 해제해 준다.

 

2. vhost 파일 생성하여 연동 내용 작성

httpd.conf 파일 내부에 모든 설정을 한번에 기술하여도 상관없으나 가독성과 세분화 및 수정의 용이성을 위해 httpd-vhost.conf 파일에 해당 내용을 작성 후 httpd.conf에 주석되어 있는 아래의 옵션 값을 주석 해제

httpd.conf의 vhost 파일 위치

 

 

WAS 및 Reverse proxy 관련 설정을 위해 httpd-vhost.conf 파일 작성

<VirtualHost *:80>
    ServerName tjddus97.or.kr
    ProxyPreserveHost On
    ProxyRequests off
    ProxyPass / http://192.168.56.230:8080/
    ProxyPassReverse / http://192.168.56.230:8080/
    ErrorLog "logs/tjddus97.or.kr-error_log"
    CustomLog "logs/tjddus97.or.kr-access_log" common
</VirtualHost>

 

ProxyPreserveHost

들어온 HTTP 요청을 Proxy 해줄 경우 사용

reverse proxy 설정일 경우 on으로 설정

 

ProxyRequests

on 일 경우 foward proxy, off일 경우 reverse proxy

위의 설정의 경우 reverse proxy 설정을 통한 연동이기 때문에 off로 설정

 

ProxyPass

들어온 HTTP 요청에 대해 proxy 연결할 URL 작성하며 일반적으로 WAS의 ip, port를 작성

 

ProxyPassReverse

Client에게 보내는 redriect 요청의 출발점을 작성하여 Client가 redirect시 해당 요청을 정상적으로 받을 수 있도록 함

 

# TEST

1. WAS ip, port로 test application 호출

 

2. apache를 통한 Client의 호출 정보 전달 및 수신 test

'WEB > Apache' 카테고리의 다른 글

Apache 컴파일 설치하기  (0) 2024.08.13