Apache, Tomcat 연동

SHARE POST TWITTER POST SHARE POST

Apache, Tomcat 연동

실행 사양

OS : RHEL 8

Apache 2.4.58 버전

Tomcat 10.1.16 버전

JAVA 버전 : openjdk version “11.0.19” 2023-04-18 LTS

먼저 아파치와 톰캣은 미리 설치가 되어있어야 한다.

아파치 2.4 버전이 설치되어있어야 한다.

1. Tomcat 홈페이지에서 다운로드 링크를 복사하고, 원하는 위치에 다운로드 한다.

다운 받은 후, 압축을 풀고 원하는 수량 만큼 인스턴스를 압축해제 한다.

https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.16/src/apache-tomcat-10.1.16-src.tar.gz

2. 필요한 패키지들 다운로드

톰캣이 돌아가게 하기 위해 필요한 패키지들이 있다. Java 11버전, autoconf, libtool, httpd-devel 패키지다.

단, httpd-devel은 아파치를 yum 설치했을 때만 설치해야 한다. 필자의 경우, 아파치를 소스설치 했으므로 Java 11버전, autoconf, libtool만 설치하였다.

yum install java-11-openjdk.x86_64 autoconf libtool

필자는 autoconf, libtool를 설치하는 이 부분을 뺴먹어서 오류 찾는답시고 몇 시간을 고생했다. 급하게 마음먹지 말고 차근차근, 꼼꼼하게 필요한 절차를 진행하자! 참고로 이 친구들은 소스 코드를 빌드하고 설치하는 데 도움을 주는 도구들이다.

3. 톰캣 홈페이지에서 커넥터 다운로드, 다운 받은 파일 압축해제 & mod_jk 컴파일 설치를 진행한다.

필자는 개인적으로 여기서 부터가 좀 난해했다. 하지만 꼼꼼하게, 차근차근 따라가면 되니 걱정하지 말자.

그 전에, tomcat1과 tomcat2라는 폴더를 생성하자

sudo mkdir tomcat1 tomcat2

#일단 tomcat1로 이동하자
cd tomcat1

여기서 우선 톰캣 커넥터를 다운로드 하자.

https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.49-src.tar.gz

# tomcat connector 디렉터리로 이동
cd apache-tomcat-10.1.16
# native 디렉토리로 이동
cd native

# 이 과정을 해주지 않으면 후에 나올 ./configure로 컴파일을 생성할 때 경로를 못 찾는 오류가 생긴다. 반드시 할 것
: error: You must specify a valid --with-apxs path → 에러 발생 (RHEL 8 에서 발생)
vi /usr/local/src/httpd-2.4.58/bin/apxs

# apxs 파일의 1번 줄의 기존 내용은 이럴 것이다. 참고로 apxs는 Apache의 확장 모듈을 등록할 때 사용하는 툴이다.
#!/replace/with/path/to/perl/interpreter -w

# apxs 파일의 1번줄 내용을 아래와 같이 바꿔준다.
#!/usr/bin/perl


# 컴파일 설치 진행
# apxs 경로를 알 수 없다고 나올 경우, whereis apxs로 확인 필요
# 아파치를 소스설치 한 경우, apxs 경로를 반드시 확인해야 한다!!!
# 필자의 경우apxs 경로는 /usr/local/src/httpd-2.4.58/bin/apxs <- 여기였다
./configure --with-apxs=/usr/local/src/httpd-2.4.58/bin/apxs        # apxs 경로로 컴파일 설치
make && make install      # make 파일 및 mod_jk.so 파일 생성

# mod_jk.so 파일이 정상적으로 설치 된 것인지 확인한다.
# find 명령어로 검색되지 않으면 제대로 설치 되지 않은 것을 의미하니, 다시 꼼꼼히 체크하도록 해야 한다.
find / -name "mod_jk.so"         <- 'find / -name' 하면 / 밑의 모든 디렉터리에서 해당 이름을 가진 파일을 찾는다.

#make install 진행 후, /usr/lib64/httpd/modules 경로에 mod_jk.so가 있어야 된다.
cd /usr/local/src/httpd-2.4.58/modules 
cp -arp mod_jk.so /usr/lib64/httpd/modules

4. apache – tomcat 연동 진행

1) httpd-2.4.58.conf 파일에서 내용 추가한다.

LoadModule jk_module modules/mod_jk.so       #mod_jk.so 파일 정의

<VirtualHost *:80>	
	JkMount /* balancer
</VirtualHost>
 
<ifModule jk_module>
        JkWorkersFile conf/workers.properties     #workers.properties 파일을 매핑하여 톰캣과의 연결을 정의

        JkShmFile logs/mod_jk.shm
        JkLogFile logs/mod_jk.log

        JkLogLevel error         #로그 레벨 지정

        JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</ifModule>

2) 이어서 httpd-2.4.58.conf가 있는 같은 디렉토리에 workers.properties 파일을 생성하고 다음과 같이 내용을 작성한다.

vi workers.properties

# worker list
worker.list=balancer

# balancer
worker.balancer.type=lb
worker.balancer.balance_workers=tomcat1

# tomcat1
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13

3) 톰캣 server.xml 파일에서 AJP 포트 활성화

(중략)
    <Connector protocol="AJP/1.3"
               address="0.0.0.0"
               secretRequired="false"
               port="8009"
               redirectPort="8443"
               maxParameterCount="1000"
               />
(중략)

※ address=”0.0.0.0″, secretRequired=”false” 를 수정/추가해 주지 않으면 정상작동 하지 않는다. 필자의 경우 secretRequired=”false”를 추가 안 했다가 고생꽤나 했다.

5) 톰캣을 start한다.

/home/tomcat1/apache-tomcat-10.1.16/bin/startup.sh

톰캣 중지는 bin/shutdown.sh 이다. startup.sh와 같은 디렉토리에 위치한다.

이어서 아파치도 가동시키자.

/path/of/apache/bin/apachectl start
#필자의 경우
/usr/local/src/httpd-2.4.58/bin/apachectl start

로컬 브라우저에 자신의 IP를 입력해 저렇게 나오면 된 것이다(80 포트 접속)

Leave A Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

MAY YOU LIKE TO READ

Teach me and I may remember, involve me and I learn.

Create your account

Cart

장바구니에 상품이 없습니다.