-Apache / Tomecat / MariaDB
Web WAS DB
=> 3대의 서버에 구축 ( 3 tier)
-아파치 서버 .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나옴

#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
#echo "export CATALINA_HOME="/usr/local/tomcat"" >> ~/.bash_profile
#source ~/.bash_profile
#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 -> 접속테스트

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