3 Tier

chung·2022년 7월 20일

복습

목록 보기
1/1

-Apache / Tomecat / MariaDB
Web WAS DB
=> 3대의 서버에 구축 ( 3 tier)

-아파치 서버 .150

Apache 설치 .150

#sudo dnf upgrade --refresh -y
#sudo dnf install httpd
#sudo systemctl enable httpd --now
-> 성공한 경우 출력의 예
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

#systemctl status httpd

방화벽
#sudo firewall-cmd --permanent --zone=public --add-service=http
#sudo firewall-cmd --permanent --zone=public --add-service=https
방화벽 변경사항 적용
#sudo firewall-cmd --reload
→ 인터넷에 192.168.80.150 기본 html나옴

tomcat설치 .160

#dnf install java-11-openjdk-devel
#java -version
#useradd -r tomcat
#wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.22/bin/apache-tomcat-10.0.22.tar.gz
#tar xf apache-tomcat-10.0.22.tar.gz -C /usr/local
#cd /usr/local
#ls
apache-tomcat-10.0.22 etc include lib64 sbin src
bin games lib libexec share
#mv apache-tomcat-10.0.22/ tomcat
#ls
bin games lib libexec share tomcat ← 이름변경 후 파일 확인
etc include lib64 sbin src
#chown -R tomcat.tomcat tomcat

- tomcat 환경변수 설정

#echo "export CATALINA_HOME="/usr/local/tomcat"" >> ~/.bash_profile
#source ~/.bash_profile

- tomcat 설정파일(server.xml)

#vi /usr/local/tomcat/conf/server.xml
114
115
116 <Connector protocol="AJP/1.3"
117 address="0.0.0.0"
118 port="8009"
119 redirectPort="8443"
120 secretRequired="false"/>

→ 꺽쇠 / 참조표시 제거 , address 0.0.0.0 변경 ,secretRequired="false 추가

#vi /etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat Server
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=CATALINA_BASE=/usr/local/tomcat

ExecStart=/usr/local/tomcat/bin/catalina.sh start
ExecStop=/usr/local/tomcat/bin/catalina.sh stop

RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target

#systemctl daemon-reload
#systemctl start tomcat
#systemctl enable tomcat
#systemctl status tomcat
#firewall-cmd --permanent --add-port=8080/tcp
=> 테스트 후 포트 차단. Apache에서 들어오는 포트는 8009임.
#firewall-cmd --permanent --add-port=8009/tcp
#firewall-cmd –reload
-외부브라우저에서 http://x.x.x.x:8080 접속

#cd /usr/local/tomcat/webapps/ROOT
위의 디렉토리위치에 ftp를 사용하여 test.jsp 를 가져왔다

#  ftp 192.168.200.200  
Connected to 192.168.200.200 (192.168.200.200).
Name (192.168.200.200:root): anonymous
Password:
ftp> ls
06-30-22  03:46PM                  605 test.jsp
ftp> get test.jsp ← 파일 가져와야함 

tomcatip:8080/test.jsp -> 접속테스트

-Apache / JK connector 설치 아파치 와 톰캣과 연동 /아파치에서

#dnf install httpd

- mod_jk 컴파일

mod_jk 란?
Apache와 Tomcat을 연동하기 위한 모듈이다. AJP 프로토콜을 이용하여 아파치로 들어온 요청을 톰캣에 전달하여
처리한다. 아파치로 들어온 요청을 톰캣으로 전달 할때 AJP 포트 (기본 8009)를 사용하며 필요에 의한 포트 변경도
가능하다.
#dnf install -y autoconf libtool httpd-devel
#dnf install redhat-rpm-config -y
=> tomcat-connector make할 때 필요

- mod_jk 다운로드 및 압축/Tar 해제

#mkdir /work
#cd /work
#wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz --no-check-certificate
#tar xf tomcat-connectors-1.2.48-src.tar.gz
#cd tomcat-connectors-1.2.48-src/native
#mkdir /work
#cd /work
#wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz --no-check-certificate
#tar xf tomcat-connectors-1.2.48-src.tar.gz
#cd tomcat-connectors-1.2.48-src/native

- mod_jk 컴파일 설치

#./buildconf.sh
#./configure --with-apxs=/bin/apxs
#make
#make install

- 설치확인

#ls -l /usr/lib64/httpd/modules/mod_jk.so
#cd /etc/httpd/conf.d/
#vi workers.properties

worker.list=tomcat1
worker.tomcat1.type=ajp13
worker.tomcat1.host=192.168.80.160 <- 톰캣
worker.tomcat1.port=8009
worker.tomcat1.lbfactor=1

#vi mod_jk.conf

LoadModule jk_module modules/mod_jk.so

JkMount /*.jsp tomcat1
JkMount /*.json tomcat1
JkMount /*.xml tomcat1
JkMount /*.do tomcat1

<ifModule jk_module>
        JkWorkersFile conf.d/workers.properties

        JkShmFile logs/mod_jk.shm
        JkLogFile logs/mod_jk.log

        JkLogLevel error
        JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</ifModule>

Apache 서비스 시작 및 활성화

#systemctl start httpd
#systemctl enable httpd

- 방화벽 개방

#firewall-cmd --permanent --add-service=http
#firewall-cmd --reload

접속테스트

아파치ip /index.jsp 접속 확인

http://192.168.80.150/(웹서버) 로 접속하면 웹서버의 index.html(기본페이지) 출력
http://192.168.80.150/index.jsp 로 접속하면 Tomcat 기본 페이지 출력 => Apache가 .jsp 요청일 경우 Tomcat으로 전달한다.

-MariaDB 설치 .170

#sudo dnf module list mariadb
#curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
#bash mariadb_repo_setup --mariadb-server-version=10.7
#sudo dnf repolist
#dnf -y module reset mariadb
#dnf install MariaDB-server MariaDB-client
#systemctl start mariadb
#systemctl enable mariadb
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
#systemctl status mariadb → 액티브 확인

-tomcat 과 mariadb 연결하기

#cd /usr/local/tomcat/lib #wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.49.tar.gz #tar zxvf mysql-connector-java-5.1.49.tar.gz #mv mysql-connector-java-5.1.49/mysql-connector-java-5.1.49-bin.jar . #systemctl restart tomcat #cd /usr/local/tomcat/webapps/ROOT #vi db.jsp ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*"%> DB Connection Test <% String DB_URL = "jdbc:mysql://mariadb ip:3306/[DB명]"; String DB_USER = "[DB 계정]"; String DB_PASSWORD= "[DB 암호]";

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!good job!");
} catch(Exception e) {
out.println(e.getMessage());
}
%>

``` #systemctl restart tomcat #mysql -u root -p MariaDB>CREATE DATABASE [DB명]; CREATE USER '[아이디]'@'%' IDENTIFIED BY '[PASSWORD]'; MariaDB>GRANT ALL PRIVILEGES ON *.* TO '[아이디]'@'%' identified by '[PASSWORD]'; MariaDB>FLUSH PRIVILEGES; // 설정 적용 MariaDB>exit #firewall-cmd --permanent --add-port=3306/tcp #firewall-cmd --reload

192.168.80.150/db.jsp 로 확인

0개의 댓글