본문 바로가기

잡다구리/서버

[Linux] Tomcat / Apache / MariaDB 3Tier 분리

 

톰캣웹 서블릿 컨테이너의 역할만 하고,

아파치 Apache HTTP Server는 웹서버의 역할을 하도록 각각의 기능을 분리한 후에 연동을 할 수 있다.

 

 

인프라 고가용성 측면에서 DB / Web / Was 를 분리하여, 한 서비스가 종료되어도 나머지 서비스에는 영향을 미치지 않도록 하는 3중 이원화를 목적으로, 찾아보고 테스트 해볼 예정이다.


▶ 연동원리

아파치와 톰캣이 연동하기 위해선 AJP를 통해 서로 통신을 하여야 한다.

AJP란 아파치가 웹서버와 외부 서비스(톰캣 등)과 연동하기 위해 정한 규약(프로토콜) 이다. 

 

아파치는 이를 사용하여 80포트로 들어오는 요청은 자신이 받고, 이 요청중 서블릿을 필요로 하는 요청은 톰캣에 접속하여 처리한다.

 

1) 아파치 웹서버의 httpd.conf 에 톰캣 연동을 위한 설정을 추가하고 톰캣에서 처리할 요청을 지정

2) 사용자의 브라우저는 아파치 웹서버(보통 80포트)에 접속해 요청

3) 아파치 웹서버는 사용자의 요청이 톰캣에서 처리하도록 지정된 요청인지 확인. 요청을 톰캣에서 처리해야 하는 경우

   아파치 웹서버는 톰캣의 AJP포트(보통 8009포트)에 접속해 요청을 전달

4) 톰캣은 아파치 웹서버로부터 요청을 받아 처리한 후, 처리 결과를 아파치 웹서버에 되돌려줌

5) 아파치 웹서버는 톰캣으로부터 받은 처리 결과를 사용자에게 전송



출처: https://goddaehee.tistory.com/77 [갓대희의 작은공간]

 

 

1.Apache 설치 

설치 경로 :  /etc/httpd

(이 위치에, /etc/httpd/conf/httpd.conf 파일이 생성됨)

 

pwd : /etc/httpd/conf/httpd.conf

 

이파일의 내용을 변경하여 모듈을 apache 실행시 함께 사용할수 있으나,

헷갈리지 않게 httpd-jk.conf , workers.properties , uriworkermap.properties 파일을 생성하여 준다.

 

 

yum install -y httpd

 

 

2. mode_jk 설치

 

# wget -c http://mirror.navercorp.com/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.43-src.tar.gz

 

- 압축을 풉니다.
# tar -xvzf tomcat-connectors-1.2.43-src.tar.gz

- 디렉토리 이동
# cd tomcat-connectors-1.2.43-src/native

- apxs(APache eXtenSion)는 httpd-devel 이 필요합니다. 없으면 설치합니다.
# yum install httpd-devel

- gcc가 필요합니다. 없으면 설치합니다.
# yum install gcc

- 컴파일을 위한 설정을 합니다.(CentOS 6.5에서는 /usr/sbin/apxs 일 수 있습니다.)
# ./configure --with-apxs=/usr/bin/apxs



- 컴파일 합니다.
# make



- 파일을 확인합니다.
# file apache-2.0/mod_jk.so
apache-2.0/mod_jk.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked ...



- Apache 모듈 디렉토리로 복사합니다.
# cp apache-2.0/mod_jk.so /usr/lib64/httpd/modules/


 

 

3. module 사용 Config 파일 생성 (3개 )

  • httpd-jk.conf
  • workers.properties
  • uriworkermap.properties
####### - /etc/httpd/conf.d/httpd-jk.conf 파일을 만듭니다.

#######

LoadModule jk_module modules/mod_jk.so


<IfModule jk_module>

  JkWorkersFile conf.d/workers.properties

  JkLogFile logs/mod_jk.log

  JkLogLevel info

  JkShmFile run/mod_jk.shm

  JkMountFile conf.d/uriworkermap.properties

</IfModule>


####### - /etc/httpd/conf.d/workers.properties

#######

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=192.168.0.2
worker.worker1.port=8009






####### - /etc/httpd/conf.d/uriworkermap.properties

#######

/*.do=worker1
/*.jsp=worker1


 

4. Tomcat AJP 프로토콜 포트 (server.xml) 

 

HTTP 접속 포트 off 설정

 Apache – Tomcat 연동을 하고나면 반드시 Tomcat 인스턴스의 HTTP 접속 포트를 Disable 해주는걸 잊지 말아야 한다.

 

 

<!--    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> -->



 

 AJP 프로토콜 포트 설정

 

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

'잡다구리 > 서버' 카테고리의 다른 글

[Linux] 환경변수 설정  (0) 2021.06.15
[Linux] Apache 소스설치  (0) 2021.06.14
history 명령어  (0) 2021.01.07
호스트 네임바꾸기  (0) 2021.01.07
사용중인 프로세스 확인/ 사용중인 포트 죽이기  (0) 2020.12.29