Simple is IT, 누구나 보고 누구나 깨닫는 IT

3계층 웹 구조를 구성해보자 ! (3 Tier Web Architecture, tomcat - apache의 연동) 본문

Simple is IT/Server

3계층 웹 구조를 구성해보자 ! (3 Tier Web Architecture, tomcat - apache의 연동)

currenjin 2020. 5. 7. 10:20

3 Tier Web Architecture

(Web Server(정적), Web Application(동적), DB)

3 or 4 tier architecture

1. 웹서버 (저번 포스트에서 SSL로 구성했던 Web Server를 사용한다.)

2. 웹 어플리케이션 서버

1) JDK 설치

yum update

yum install java-1.8.0-openjdk-devel.x86_64

환경변수 설정

vi /etc/profile

최하단 이동 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/

export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin

export PATH

source /etc/profile

버전 확인

java -version

2) 톰캣

wget http://mirror.navercorp.com/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz

tar zxvf apache-tomcat-9.0.31.tar.gz

mv apache-tomcat-9.0.31 /usr/local/tomcat9

3. DB 서버

MySQL Installing in CentOS

yum install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

yum -y install mysql-community-server

systemctl restart mysqld

cat /var/log/mysqld.log | grep root@localhost // root 임시 패스워드 확인

mysql_secure_installation // mysql에 대한 기본 셋팅

systemctl stop firewalld, setenforce 0

이로써 기본 준비물은 다 챙긴 셈이다.

웹 서버와 웹 어플리케이션의 연동

yum install httpd-devel gcc gcc-c++

(1) 아파치 서버 설정

1) 관련 패키지 및 모듈 설치

yum install httpd httpd-devel gcc gcc-c++

wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz

2) 모듈 설치

tar zxvf tomcat-connectors-1.2.46-src.tar .gz

cd tomcat-connectors-1.2.46-src/native/

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

make

tomcat-connectors-1.2.46-src/native/apache-2.0 밑에 mod_jk.so 생성됨

cp mod_jk.so /usr/lib64/httpd/modules/mod_jk.so

chmod 755 /usr/lib64/httpd/modules/mod_jk.so

3) 서버에서 모듈 적용 설정

vi /etc/httpd/conf/httpd.conf 파일 58번 라인에 다음 내용 추가

LoadModule jk_module /usr/lib64/httpd/modules/mod_jk.so

<IfModule jk_module>

JkWorkersFile /etc/httpd/conf/workers.properties // worker 지정

JkLogFile /var/log/httpd/mod_jk.log // log 저장될 파일

JkLogLevel info // info level이상의 log를 저장

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" // log 형식

JkMount /*.jsp worker1 </IfModule> // /*.jsp만 worker가 일을 하게

// jk_module : 특정 웹 페이지에 일할 장치들을 지정하는 모듈


// jk_module이란 이름으로 모듈을 불러옴

// jk_module이란 모듈이 있으면 ifModule 진행

4) 워커 파일 생성

vi /etc/httpd/conf/workers.properties 파일 안에 다음 내용 작성

worker.list=worker1

worker.worker1.type=ajp13

worker.worker1.host=[톰캣의 IP]

worker.worker1.port=8009

5) 톰캣 설정 후 서버 재시작 systemctl restart httpd

(2) 톰캣 서버 설정

1) 톰캣 설정

vi /usr/local/tomcat9/conf/server.xml 파일에서 154번 줄에 다음 내용 추가

<Context path="" docBase="[Name]" reloadable="true" />

116번 121번의 주석 제거 후 다음 내용 추가

address="::1" --> 0.0.0.0으로 변경

secretRequired="false"

/usr/local/tomcat9/webapps 디렉토리 밑에 [Name] 디렉토리 생성

vi /usr/local/tomcat9/webapps/[Name]/index.jsp 파일에 다음 내용 작성

test

2) 톰캣 서버 실행

/usr/local/tomcat9/bin/shutdown.sh

/usr/local/tomcat9/bin/startup.sh

3) 톰캣 실행 확인 netstat -anlp | grep :8080

(3) 중간 확인

브라우저에서 http://[아파치 서버 IP]/index.jsp 입력했을 때 톰캣에서 만든 index.jsp 파일의 내용이 나와야 함

(4) DB 및 테이블 생성

DB 접속 후 CREATE DATABASE [DB 이름];

use [DB 이름]; CREATE TABLE [테이블 이름] ([칼럼명] VARCHAR(10), [칼럼명] INT);

데이터 몇개 넣기

INSERT INTO [테이블 이름] VALUES('jeong',10);

INSERT INTO [테이블 이름] VALUES('hyun',20);

INSERT INTO [테이블 이름] VALUES('jin',30);

(5) 원격 접속 허용 계정 생성

CREATE USER '[DB 계정]'@'%' identified by '[DB 비번]';

GRANT ALL PRIVILEGES ON [DB이름].* TO '[DB 계정]'@'%';

FLUSH PRIVILEGES;

(6) 톰캣이랑 DB 연동하기

톰캣 서버에서 wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.19.tar.gz

아카이브 해제

해당 디렉토리로 이동 cp mysql-connector-java-8.0.19.jar /usr/local/tomcat9/lib/

톰캣 재시작

톰캣 jsp파일에 맨 아래 첨부파일 참조하여 작성

아파치 IP접속 후 jsp파일 최종 확인







Log 확인

Apache Log

: /etc/httpd/logs

Tomcat Log

: /usr/local/tomcat9/logs

Mysql Log

: /var/log/mysqld.log


    

연동과정에서의+jsp (1).txt



Comments