yum install httpd httpd-devel gcc gcc-c++
wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
tar zxvf tomcat-connectors-1.2.48-src.tar.gz
cd tomcat-connectors-1.2.48-src/native/
./configure --with-apxs=/usr/bin/apxs
yum install -y make
yum install -y redhat-rpm-config
make
위의 모듈들을 설치하고 실행하면, tomcat-connectors-1.2.48-src/native/apache-2.0 밑에 mod_jk.so 생성됨
apache-2.0 디렉토리로 이동
cp mod_jk.so /usr/lib64/httpd/modules/mod_jk.so
chmod 755 /usr/lib64/httpd/modules/mod_jk.so
- 권한 변경
LoadModule jk_module /usr/lib64/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 worker1
</IfModule>
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=[톰캣의 IP]
worker.worker1.port=8009
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-3.el8.x86_64/
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
위의 코드를 최하단에 작성
source /etc/profile 로 설정 적용
java -version 로 설치와 설정 잘 되었는지 확인
<Context path="" docBase="[이니셜]" reloadable="true" />
<Connector protocol="AJP/1.3"
address="0.0.0.0"
secretRequired="false"
port="8009"
redirectPort="8443" />
secretRequired는 https 설정인데, 아직 배우지 않았기 때문에 false로 설정
8009번 포트로 들어오면 8443번 포트로 리다이렉트 시켜줌.
/usr/local/tomcat9/webapps 디렉토리 밑에 [이니셜] 디렉토리 생성
- 이곳이 이제 우리가 개발할 디렉토리임.
/usr/local/tomcat9/webapps/[이니셜] 디렉토리 밑에 index.jsp 파일 생성
CREATE DATABASE [DB 이름];
use [DB 이름];
CREATE TABLE student (sname VARCHAR(10), sage INT);
INSERT INTO student VALUES('kim',10);
INSERT INTO student VALUES('lee',20);
INSERT INTO student VALUES('park',30);
INSERT INTO student VALUES('sim',40);
CREATE USER '[DB 계정]'@'%' identified by '[DB 비번]';
GRANT ALL PRIVILEGES ON [DB이름].* TO '[DB 계정]'@'%';
FLUSH PRIVILEGES;
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>Insert title here</title>
</head>
<body>
<%
Connection conn = null;
ResultSet rs = null;
String url = "jdbc:mysql://[DB 서버 IP]:3306/[DB 이름]?serverTimezone=UTC";
String id = "[DB 계정]";
String pwd = "[DB 비번]";
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, id, pwd);
Statement stmt = conn.createStatement();
String sql = "SELECT sname FROM student";
rs = stmt.executeQuery(sql);
while(rs.next()) {
out.println(rs.getString("sname"));
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>
아파치가 깔려져 있는 ip/db.jsp 로 접속하면 우리가 db 서버 cdh 데이터베이스의 student 테이블에 넣었던 더미 데이터들이 나온다.
이렇게 되면 톰캣과 db가 연동되어서 아파치에서 jsp 파일을 요청하면 톰캣에서 db.jsp 파일을 주는데 그 안에서 db 파일을 db 서버로 요청해서 받아서 주게 된다.
client -> apache -> tomcat -> db -> tomcat -> apache -> client 단계이다.