[ 설치 환경 ]
OS | Centos 7.6 |
Apache 2.4 | |
Tomcat 7 |
3. tomcat 7 설치
tomcat 설치 링크 tomcat.apache.org/download-70.cgi
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
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 설치 및 연동 완료되었습니다.
도움이 되셨다면 구독과 좋아요를
궁금한 내용이 있으시면 댓글 부탁드리겠습니다!!
'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 |
최근댓글