공부합시다!/Cloud

Project: 3Tier 구성하기(CentOS7)

간서치 2023. 2. 2. 00:14
728x90

드디어 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 로 제어하셔야 합니다.

 

3Tier

 

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!

 

 

 

 

728x90