Cloud인프라/Centos 리눅스

04 Centos WAS tomcat 및 mod_jk 구현 + java jdk 환경변수

ErrorMin 2022. 3. 1. 17:57

본 포스팅은 이전 03 Centos7 WEB 구축 과 이어집니다. (https://errormindevops.tistory.com/13?category=537548)

 

  • 이전 포스팅에서 진행한 CentOS7 Apache를 설치하여 간단한 WEB 페이지를 띄웠습니다.
  • Apache는 정적처리(html/Css 문서 및 이미지)등 정적인 데이터를 처리하는데에 초점이 맞추어져 있습니다.
  • 쉽게 말해 지금 진행하는 내용은 Tomcat + Mod_jk를 구축하여 Apache에서는 정적인 처리를... Mod_jk를 구축해  동적 데이터를 처리하는 Tomcat과 연결하여 정적인 요청과 동적인 요청을 각각 진행할수 있도록 합니다.

 

알아야할 키워드...

1. AJP

2. 2Tier Server

 


1. JAVA -Version 확인

 

java version 확인

<java version 확인>
java -version

java openjdk가 설치되어 있지 않다고 나와있다.

설치가 되어있으면 그대로 써도 되고 아니면 특정 버전을 사용하고 싶으면 삭제하고 새로 다운로드한다.

 


2. JAVA 설치

 

<설치 이전에 wget 설치 확인>
wget

<wget 설치가 안되어 있으면 wget 설치>
yum install wget -y

<java, OpenJdk 16.0.2 다운>

wget https://download.java.net/java/GA/jdk16.0.2/d4a915d82b4c4fbb9bde534da945d746/7/GPL/openjdk-16.0.2_linux-x64_bin.tar.gz

<압축 풀기>
tar -zxvf openjdk-16.0.2_linux-x64_bin.tar.gz

<설치확인>
/usr/lib/jdk-16.0.2/bin/java -version

 


3. 환경변수 등록

<환경변수 등록 경로>
vi /etc/profile

<Shift + G를 눌러 vi 편집기 제일 아래로 이동후 입력>
export JAVA_HOME=/usr/lib/jdk-16.0.2

<저장후 나가기>
:wq

<수정한 파일 저장>
source /etc/profile

 


4. 환경변수 확인

등록된 환경변수 확인

<등록된 환경변수 확인>
echo $JAVA_HOME

<CentOS에 등록된 환경변수 모두 보기>
export

5. Alias(별칭 설정)

 

- 적용 범위에 따라 bashrc파일을 vi 편집기로 열어 Alias를 등록해 줍니다.

= /etc/bashrc (모든 사용자 적용)

= ~/.bashrc (해당 사용자 적용)

 

<설정 경로 이동>
vi /etc/bashrc

<vi 편집기에서 Shift + g를 눌러 마지막줄로 이동후 아래 명령어 입력>
alias java="/usr/lib/jdk-16.0.2/bin/java"
alias javac="/usr/lib/jdk-16.0.2/bin/javac"

<저장후 나가기>
:wq

<수정한 파일 저장>
source /etc/bashrc

<jdk 등록 확인>
java -version

java -version 확인


6. Tomcat 설치

 

<톰캣 설치 확인>
yum list installed | grep tomcat

<톰캣 설치>
yum install tomcat* -y

<설치 경로 이동 후 설치 확인>
cd /usr/share/tomcat

ls

<톰캣 방화벽 설정 success가 나와야함.>
firewall-cmd --permanent --add-port=8080/tcp

firewall-cmd --reload

<톰캣 실행>
systemctl enable tomcat

systemctl start tomcat

<내 IP 확인>
ip a

<브라우저 주소창에 입력>
[내 IP]:8080

톰캣창이 뜨면 설치 성공


7. mod_jk설치 및 설정

 

<mod_jk 설치전 필요한 컴파일러 설치>
yum install gcc gcc-c++ httpd-devel -y

yum install -y autoconf libtool httpd-devel

<mod_jk 설치>
wget https://downloads.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz

<mod_jk 압축 해제>
tar zxvf tomcat-connector*

<mod_jk 파일 경로 이동 및 파일 확인 컴파일>
cd tomcat-connectors-1.2.48-src

ls

cd native/

./configure --with-apxs=/usr/bin/apxs

make

<make가 컴파일 완료 후 install>
make install

<mod_jk.so파일이 생성되어있는지 확인>
cd /etc/httpd/modules/

ls -al | grep mod_jk

<mod_jk.so Selinux 보안설정 하기전 selinux설정 중요>
vi /etc/sysconfig/selinux

SELINUX=disabled -> enforcing       변경

:wq

reboot

<mode_js.so 보안설정>
chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so

8. Apache 설정

 

<httpd.conf에 LoadModule 추가>
vi /etc/httpd/conf/httpd.conf

<주석 아래 추가>
# Example:
# LoadModule foo_module modules/mod_foo.so
# 아래부터
LoadModule jk_module modules/mod_jk.so
<VirtualHost *:80>
ServerName sm.smt.com
JkMount /*.jsp tomcat
JkMount /*.json tomcat
JkMount /*.xml tomcat
JkMount /*.do tomcat
</VirtualHost>

:wq

<mod_jk.conf 파일 생성>
vi /etc/httpd/conf.modules.d/mod_jk.conf

<아래와 같이 작성>
<IfModule mod_jk.c>
JkWorkersFile conf/workers.properties
JkShmFile run/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%y %m %d %H: %M: %S]"
</IfModule>

:wq

9. workers파일 생성

 

<workers 파일 생성>
mod_jk.conf에서 workers.properties를 설정했었으니 해당 파일을 만들어야 한다.
vi /etc/httpd/conf/workers.properties

<아래와 같이 작성>
worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=10.0.0.133
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1

<Apache와 Tomcat의 document 위치 설정>
vi /etc/httpd/conf/httpd.conf


DocumentRoot "/usr/share/tomcat/webapps/ROOT"
#
# Relax access to content within /var/www.
#
<Directory "/usr/share/tomcat/webapps/ROOT">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

vi /usr/share/tomcat/conf/server.xml

vi /usr/share/tomcat/conf/server.xml

<추가>
secreRequired="false"
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

10. selinux 설정

chcon -R --type=httpd_sys_rw_content_t /usr/share/tomcat/webapps/ROOT
setenforce 0

systemctl start httpd.service
systemctl start tomcat.service