반응형

[ 설치 환경 ]

OS Centos 7.6
Apache 2.4
Tomcat 7

 3. tomcat 7 설치

tomcat 설치 링크 tomcat.apache.org/download-70.cgi

 

Apache Tomcat® - Apache Tomcat 7 Software Downloads

Welcome to the Apache Tomcat® 7.x software download page. This page provides download links for obtaining the latest version of Tomcat 7.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version

tomcat.apache.org


 3-1. tomcat 7 설치 및 실행

wget https://downloads.apache.org/tomcat/tomcat-7/v7.0.107/bin/apache-tomcat-7.0.107.tar.gz
tar -xvf apache-tomcat-7.0.107.tar.gz 
cp -rf apache-tomcat-7.0.107 /opt/tomcat

# tomcat 실행
/opt/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

 3-2. 방화벽 설정

# 추가
firewall-cmd --permanent --zone=public --add-port=8080/tcp

# 적용
firewall-cmd --reload

# 확인
firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno1
  sources: 
  services: ssh dhcpv6-client
  ports: 80/tcp 8080/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

만약 톰캣의 설치가 문제없이 완료되었다면 브라우저를 실행해 주소창에 IP:8080 입력 하시면

아래와 같은 고양이 페이지가 뜹니다.


 4. mod_jk

연동 하기 전에 앞서 , 연동 방식의 대하여 간단하게 말씀드리겠습니다.

연동 방식은 mod_jk, mod_proxy, mod_prox_ajp 세가지 방식이 존재한다고 합니다.
저는 mod_jk 방식만을 다루겠습니다. mod_jk로 연동하는 경우가 많고, 나머지 2가지에 비해 URL 또는 컨텐츠별 설정이 쉽다고 합니다.

아파치와 톰캣을 연동하기 위해서는 mod-jk 모듈이 필요합니다.

mod_jk 모듈은 AJP 프로토콜( Apache Jserv Protocol)을 사용하여 아파치와 톰캣을 연동하는 플러그인입니다.

AJP 프로토콜은 웹 서버 뒤에 있는 애플리케이션 서버로부터 웹 서버로 들어오는 요청을 위임할 수 있는 바이너리 프로토콜이며, 주로 로드밸런싱에 사용됩니다.

AJP는 아파치가 웹서버와 외부서비스(톰캣)을 연동하기 위해 정한 규약(Protocol)


아파치는 이를 사용해 포트 80으로 들어오는 요청은 자신이 받고 이 요청 중 서블릿을 필요로 하는 요청은 톰캣에 넘겨 처리
아파치, 톰캣 연동을 위해 mod_jk라는 모듈을 사용->AJP Protocol을 사용하여 톰캣과 연동하기 위해 만들어진 모듈

1. 아파치 웹서버의 httpd.conf에 톰캣 연동을 위한 설정을 추가
2. 사용자의 브라우저는 아파치 웹서버(기본 포트 80)에 접속해 요청

3. 아파치 웹서버는 사용자의 요청이 톰캣에서 처리하도록 지정된 요청인지 확인하여 톰캣에서 처리해야하는 경우 아파치 웹 서버는 톰캣의 AJP포트(기본 8009 포트)에 접속해 요청을 전달
4. 톰캣은 아파치 웹서버로부터 요청을 받아 처리 후 처리 결과를 아파치 웹서버에 되돌려 준다

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


 4-1. mod_jk 설치

mod_jk 설치 tomcat.apache.org/download-connectors.cgi

 

Apache Tomcat® - Tomcat Connectors (mod_jk) Downloads

You must verify the integrity of the downloaded files. We provide OpenPGP signatures for every release file. This signature should be matched against the KEYS file which contains the OpenPGP keys of Tomcat's Release Managers. We also provide SHA512 checksu

tomcat.apache.org


 4-2. mod_jk 컴파일

wget 뒤에 해당 링크 주소 복사하시면 됩니다.

해당 링크주소는 시간이 지나면 변하기 때문에 직접 들어가서 다운로드하시는 걸 추천드립니다.
tomcat-connectores → Tomcat과 외부 요청 connecting을 담당

cd /root/src
wget https://downloads.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
tar xvfz tomcat-connectors-1.2.48-src.tar.gz
cd /root/src/tomcat-connectors-1.2.48-src/native
./configure --with-apxs=/opt/apache/bin/apxs
make && make install

 4-3. workers.properties 생성 

cd /opt/apache/conf
vim workers.properties
↓ 아래 내용 추가 ↓
workers.tomcat_home=/opt/tomcat
workers.java_home=/usr/lib/jvm/java-openjdk
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

위에 내용은 아래의 내용 참고 부탁드립니다.
workers.properties는 Apache와 연동할 Tomcat의 정보 및 관련 파라미터 값을 설정하는 파일
workers.tomcat_home="/opt/tomcat" → 자신의 톰캣 경로 

worker.list=ajp13  연동할 Tomcat의 별칭

worker.ajp13.port=8009  ajp의 AJP포트번호 (기본포트 8009 )

worker.ajp13.host=localhost  ajp의 IP 주소 또는 호스트명

worker.ajp13.type=ajp13  ajp13에서 사용할 프로토콜 ( ajp13 프로토콜이 기본값)


 4-4. httpd.conf 설정 추가

vim /opt/apache/conf/httpd.conf
LoadModule jk_module    modules/mod_jk.so
<IfModule mod_jk.c>
    JkWorkersFile "/opt/apache/conf/workers.properties"
    JkLogFile "/opt/tomcat/logs/mod_jk.log"
    JkLogLevel info
</IfModule>

<IfModule dir_module>
    DirectoryIndex index.jsp index.html index.htm
</IfModule>

# 톰캣 웹 경로 권한 부여
<Directory "/opt/tomcat/webapps/ROOT">
    Options FollowSymLinks
    AllowOverride ALL
    Require all granted
</Directory>

위에 내용은 아래의 내용 참고 부탁드립니다.
LoadModule jk_module modules/mod_jk.so

→ mod_jk.so 모듈을 사용하기위해 적재
<IfModule mod_jk.c>

</IfModule>

  jk_module이 적재되어 있는 동안에만 해당 설정을 적용
 JkWorkersFile
위에서 생성한 workers.properties 파일의 경로를 설정
JkLogFile

연동에 관련된 로그파일이 생성될 경로를 설정

 JkLogLevel info 

로그 파일의 레벨을 설정


  4-5. vhost.conf 설정

 vim /opt/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/opt/apache/htdocs/ROOT"
    ServerName localhost
    JKMount /*.jsp ajp13
    JKMount /docs/* ajp13
    JKMount /examples/* ajp13
    JKMount /host-manager/* ajp13
    JKMount /manager/* ajp13
    JKMount /WEB-INF/* ajp13
    JKMount /*.do ajp13
    JKMount /*.png ajp13
    JKMount /servlet/* ajp13
    JKMount /*.ico ajp13
    JKMount /*.css ajp13
    JKMount /*.svg ajp13
</VirtualHost>

위에 내용은 아래의 내용 참고 부탁드립니다.
JkMount : 어떤 url 패턴으로 서버하고 연결시킨 것인지 결정

/*.jsp 를 하게되면 jsp 호출시 아파치가 톰캣서버를 호출하도록 한다.


 4-6. server.xml 설정

vim /opt/tomcat/conf/server.xml
<Connector protocol="AJP/1.3"
               address="0.0.0.0"
               secretRequired="false"
               port="8009"
               redirectPort="8443" />

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/opt/apache/htdocs/ROOT" debug="0" privileged="true" reloadable="true"></Context>

위에 내용은 아래의 내용 참고 부탁드립니다.
server.xml은 메인 설정 파일입니다.
name
 = 기본 localhost외에 추가할 domain 주소를 입력한다. (예를 들어 www.naver.com)

appBase = 새로 추가할 domain의 파일을 저장시킬 폴더를 지정한다.

<Context> 를 사용하지 않으면 ROOT를 자동으로 Document Root로 사용 한 다는 것을 기억하자.

<Context path=""   웹어플리케이션의 경로명(http://localhost/'요기 붙을 내용')

docBase="vhost 설정에서 설정한 DocumentRoot"  "  웹어플리케이션이 위치한 폴더의 경로명(실제 경로) "

debug="0" 

privileged=" true" 


 4-7. 톰캣 홈 경로를 아파치 홈경로로 복사

cd /opt/apache/htdocs
mkdir ROOT
cd ROOT
vi index.html
<h2> hellow </h2> // 추가 후 저장
rsync -av /opt/tomcat/webapps/ROOT/* /opt/apache/htdocs/ROOT/

ㄴ 이 설정을 하는 이유는 아파치 홈 경로에 기본 소스 설정이 안되어져있어, 연동시 톰캣 화면이 정상적으로 안나올수 있습니다. 

 


 4-8. 연동 확인

브라우저에 ip 입력시 고양이 화면이 출력되야 합니다.

브라우저에 ip/jsp시  고양이 화면 출력 / 동적 컨텐츠 처리

브라우저에 ip/html시 hello 화면 출력 / 정적 컨텐츠 처리

이로서, apache, tomcat 설치 및 연동 완료되었습니다. 

 

도움이 되셨다면 구독 좋아요

궁금한 내용이 있으시면 댓글 부탁드리겠습니다!!

정리.txt
0.00MB

반응형

'IT > Linux' 카테고리의 다른 글

APM ( Apache 2.4 + PHP 5.6 + MySQL 5.7 ) yum 설치  (0) 2021.01.26
APM yum 설치  (0) 2021.01.25
Apache + tomcat 7 설치 및 연동 (1)  (0) 2021.01.23
APM 이란?  (1) 2021.01.23
APM ( Apache 2.4 + PHP 7.3 + MariaDB 10.3 )소스설치 (3)  (5) 2021.01.21
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
});