Project: 3Tier 구성하기(CentOS7)
드디어 Project들이 진행이 되네요!
우선 3Tier 구성에 대해서 진행합니다.
WEB(Apache) <-> WAS(Tomcat) <-> DB(MySQL5.7)가 각각의 역할에 맞게 구성하는 것을 3Tier 구성이라고 합니다. WEB+WAS <-> DB로 연결하는 2Tier 구성도 많이들 사용합니다.
이렇게 계층을 나눠서 서비스를 진행하면 속도가 느린 동적인 페이지는 WAS가 전문적으로 처리하고 정적인 페이지들은 속도가 빠른 WEB를 처리를 해서 Service를 빠르게 처리할 수 있는 장점을 갖게 됩니다.
WAS만 단독으로 구성한다면 정적인 페이지까지 처리해야 하니 느려질 수 밖에 없겠지요!
오늘은 모두 yum를 활용해서 구성합니다.
인터넷에 Binary설치에 대한 자료들이 넘처나니 일단은 쉽게 yum으로 작업을 진행합니다.
ps: 방화벽은 모두 open상태, 여러분은 firewall-cmd 로 제어하셔야 합니다.
1. apache 설치 및 설정(CentOS7-1)
2. tomcat 설치 및 설정(CentOS7-2)
3. mysql5.7 설치 및 설정(CentOS7-3)
4. Test
순서로 진행합니다.
1. apache 설치 및 설정(CentOS7-1)
1.1. apache 설치 및 필수 패키지 설치
# yum install -y httpd
# yum install -y gcc gcc-c++ wget expat-devel httpd-devel
# yum install -y java-11-openjdk-devel.x86_64
1.2. wokers.properties 파일 생성 및 구성
# vi /etc/httpd/conf/workers.properties
worker.list=tomcat1
worker.tomcat1.type=ajp13
worker.tomcat1.host=10.0.0.11
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1
:wq
1.3. tomcat.conf 파일 작성(이름은 뭐라 해도 상관 없음)
# vi /etc/httpd/conf.d/tomcat.conf
LoadModule jk_module /etc/httpd/modules/mod_jk.so
<IfModule jk_module>
JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkMount /*.jsp tomcat1
</IfModule>
:wq
1.4. mod_jk.so 설치
# wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.49-src.tar.gz --no-check-certificate
source 파일 다운로드
# tar xvfz tomcat-connectors-1.2.49-src.tar.gz
압축 및 아카이브 해제
# cd tomcat-connectors-1.2.49-src/native/
디렉토리 이동
# ./configure --with-apxs=/usr/bin/apxs
환경 설정
# make && make install
컴파일 및 설치
1.5. index.html 작성
# vi /var/www/html/index.html
<html>
<body>
<h1>3Tire Configuration</h1>
<ul>
<li> web </li>
<li> was </li>
<li> db </db>
</ul>
</body>
</html>
:wq
2. tomcat 설치 및 설정(CentOS7-2)
2.1. tomcat 설치
# yum install -y tomcat*
java 및 기타 tomcat 관련된 모든 패키지 설치
이렇게 하지 않고 tomcat만 설치하면 다른 패키지를 설치해야하는 불편함이 있습니다.
바로 아래에 있는 것들도 설치해야 하는 불편함
# yum install -y tomcat-webapps tomcat-admin-webapps
2.2. server.xml 설정
2.3. mysql-connect 설치
# yum install -y mysql-connector-java.noarch
2.4. db.jsp 파일 생성
# vi /var/lib/tomcat/webapps/ROOT/db.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DB Connection Test</title>
</head>
<body>
<%
String DB_URL = "jdbc:mysql://10.0.0.12:3306/mysql?autoReconnect=true&serverTimezone=UTC";
String DB_USER = "root";
String DB_PASSWORD= "It12345@";
Connection conn;
Statement stmt;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
stmt = conn.createStatement();
conn.close();
out.println("MySql jdbc test: connect ok!!");
} catch(Exception e) {
out.println(e.getMessage());
}
%>
</body>
</html>
:wq
주의
cp /usr/share/java/mysql-connector-java.jar /usr/share/tomcat/lib
꼭 해주세요! - 이준님이 알려주셨습니다.
3. mysql5.7 설치 및 설정(CentOS7-3)
2022.04.05 - [공부합시다!/LInux] - CenTOS7 : WordPress + MySQL5.7 + PHP7.3 Install
참고하세요.
4. Test
4.1 index.html
4.2 index.jsp (CentOS7-2의 /var/lib/tomcat/webapps/ROOT/index.jsp 존재함)
4.3 db.jsp (CentOS7-2의 /var/lib/tomcat/webapps/ROOT/db.jsp 생성함)
자 이렇게 해서 3Tier 구성을 완료했습니다.
여러분들이 하셔야 할 일은 이걸 자동화 하는 것입니다..
또한 jsp가 아닌 php로도 구현해 보시기 바랍니다.
그리도 Container -> K8S -> Cloud 환경의 K8S 구축이 프로젝트 순서가 됩니다.
Have a nice day!