# 테스트 환경

  • 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

# 테스트 환경

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



# Apache 설치 전 필요한 필수 패키지들 확인

https://httpd.apache.org/docs/2.4/install.html

 

컴파일과 설치 - Apache HTTP Server Version 2.4

컴파일과 설치 이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요. 이 문서는 유닉스와 유닉스류 시스템에서 아파치를 컴파일하고 설치하는 것만을 다룬다. 윈

httpd.apache.org

 

설치 매뉴얼을 참고하게 되면

apache 즉, httpd는 ANSI-C를 지원하는 컴파일러, APR, PCRE, APR-util가 필요

 

1. ANSI-C 지원하는 컴파일러

gcc, gcc-c++

apache는 c언어 기반이기 때문에 c 계열의 컴파일러가 필요

 

2. apr( Apache Portable Runtime), apr-util

apache 웹 서버용 지원 라이브러리로 설치될 플랫폼에 관계없이 일정한 동작을 하기 위해 반드시 필요한 라이브러리

아래의 링크에서 소스코드를 다운로드하여 설치

 

https://apr.apache.org/download.cgi

 

Download - The Apache Portable Runtime Project

The currently selected mirror is https://dlcdn.apache.org/. If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are backup mirrors (at the end of the mirrors list) that should be available. You may a

apr.apache.org

 

 

3. pcre

펄 호환 정규 표현식으로 apache 2.4 이상의 설치를 위해 필요한 패키지

아래의 링크에서 소스코드를 다운받아 설치

 

https://pcre.org/

 

PCRE - Perl Compatible Regular Expressions

PCRE - Perl Compatible Regular Expressions The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API, as well as a set of wrapper functions that cor

pcre.org

 

4. expat

apache는 JSON 데이터 형식의 포맷과 다르게 XML 데이터 형식의 포맷을 사용하기 때문에 XML parser가 필요

그중에서 c언어 기반으로 구축된 expat 설치가 필요

 

 

# apache 설치

1. 패키지 다운로드

yum으로 설치 가능한 패키지들은 yum install로 설치하고 소스코드 다운로드 후 컴파일이 필요한 패키지들은 각각의 소스코드를 다운로드하여 직접 패키지 설치

 

yum install gcc gcc-c++ expat expat-devel make

 

 

 

2. pcre 패키지 컴파일

configure 명령어를 통해 소스코드를 환경에 맞게 구성하고 prefix 명령어를 통해 설치 경로 지정

./configure --prefix=/usr/local/pcre

 

make 명령어를 통해 컴파일을 진행하고 make install 를 통해 설치 완료

make
make install

 

3. apr, apr-util 패키지 컴파일 및 httpd 설치

압축해제한 apr과 apr-util을 httpd 폴더의 srclib 폴더로 카피

 

다음의 명령어를 통해 httpd 컴파일 진행

./configure --prefix=/usr/local/httpd --with-pcre=/usr/local/pcre --with-included-apr

 

위의 명령어를 통해 configure를 진행하면 erorr가 발생

 

→ 이 경우 pcre 뒤에 config 경로를 입력 후 명령어 재 실행

./configure --prefix=/usr/local/httpd --with-pcre=/usr/local/pcre/bin/pcre-config --with-included-apr

 

 

정상적으로 configure 되었으면 make / make install을 통해 컴파일 진행

 

 

# apache 실행

apache 디렉터리로 이동하여 apache 실행하기

cd /usr/lcoal/httpd/bin

./apachectl start

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

Apache & Tomcat 연동  (0) 2024.08.18

+ Recent posts