서버 관리/WEB 서버

1. 웹 서버와 웹 애플리케이션과 DB 서버 연동

각수짱 2023. 2. 14. 16:35
728x90
반응형
SMALL

웹 서버와 웹 애플리케이션과 DB 서버 연동

아파치 서버 설정

웹 서버 설치

yum -y install httpd

방화벽 해제

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

관련 패키지 및 모듈 설치

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 생성됨

cp mod_jk.so /usr/lib64/httpd/modules/mod_jk.so

복사 붙여 넣기

chmod 755 /usr/lib64/httpd/modules/mod_jk.so

권한

서버에 모듈 적용 설정

vi /etc/httpd/conf/httpd.conf

파일 마지막 줄 밑에 다음 내용 추가

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
			# 여기서 /*로 입력시 모든 확장자를 worker1 로 보낸다
		</IfModule>

워커 파일 생성

vi /etc/httpd/conf/workers.properties

파일 안에 다음 내용 작성

worker.list=worker1

		worker.worker1.type=ajp13
		worker.worker1.host=[톰캣의 IP]
		worker.worker1.port=8009

ajp13는 프로토콜 이름

8009 포트는 일반적으로 Apache Tomcat 웹 서버에서 사용되는 포트이다. 이 포트는 Apache Tomcat 웹 애플리케이션 서버에서 외부 요청에 대한 응답을 제공하기 위해 사용된다. 일반적으로 Tomcat은 기본적으로 8009 포트를 사용하지만, 이 포트 번호는 사용자의 요구에 따라 변경될 수 있다.

톰캣 설정 후 서버 재시작

systemctl restart httpd

톰캣 서버 설정

방화벽 해제

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

설치

JDK 설치

yum -y install java-1.8.0-openjdk-devel.x86_64

환경변수 설정

vi /etc/profile

최하단에 복사 저장 및 종료

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

자바 버전 확인

톰캣

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.71/bin/apache-tomcat-9.0.71.tar.gz
tar zxvf apache-tomcat-9.0.71.tar.gz
mv apache-tomcat-9.0.71 /usr/local/tomcat9

톰캣 설정

vi /usr/local/tomcat9/conf/server.xml

파일에서 121번 라인에 다음 내용 추가

<Connector protocol="AJP/1.3"
                    address="0.0.0.0"
                    secretRequired="false"
                    port="8009"
                    redirectPort="8443" />

153번 줄 줄에 다음 내용 추가

*tip : <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"> 밑에 작성

<Context path="" docBase="[이니셜]" reloadable="true" />

저장 및 종료

mkdir /usr/local/tomcat9/webapps/[이니셜] 디렉토리 생성
touch /usr/local/tomcat9/webapps/[이니셜]/index.jsp 파일 생성
vi /usr/local/tomcat9/webapps/[이니셜]/index.jsp 파일에 다음 내용 작성
		tomcat server

톰캣 서버 실행

/usr/local/tomcat9/bin/shutdown.sh //종료
/usr/local/tomcat9/bin/startup.sh //실행

톰캣 실행 확인

netstat -anlp | grep :8080
netstat -anlp | grep :8009

톰캣 실행 확인


중간 확인

본체 웹 브라우저에서 http://[아파치 서버 IP]/index.jsp 입력했을 때
톰캣에서 만든 index.jsp 파일의 내용이 나와야 함

index.jsp 파일의 내용

본체 웹 브라우저에서 http://[아파치 서버 IP]/index.html 입력했을 때
아파치에서 만든 index.html 파일의 내용이 나와야 함  // jsp 했던 것처럼 html적용

index.html 파일의 내용

*tip : 
수평 분할 : 같은 역할을 하는 컴퓨터를 여러 대 준비
수직 분할 : 다른 역할을 하는 컴퓨터를 여러대 준비

*tip : 
웹 애플리케이션 서버 : 프로그램 코드를 실행해서 HTML을 동적으로 만들어서 보여주는 서버


DB 서버 설정

방화벽 해제

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

mysql 설치 및 초기 설정

yum -y install mysql-server

설치 후

systemctl restart mysqld

로 mysql 실행

mysql_secure_installation
y
0
qwer1234
qwer1234
y
y
y
y

DB 및 테이블 생성

mysql -u root -p

DB 접속 후

CREATE DATABASE [DB 이름];
	use [DB 이름];
	CREATE TABLE [테이블 이름] (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);

필자는 db이름은 apple 테이블 이름은 people로함

원격 접속 허용 계정 생성

CREATE USER '[DB 계정]'@'%' identified by '[DB 비번]';
GRANT ALL PRIVILEGES ON [DB이름].* TO '[DB 계정]'@'%';
FLUSH PRIVILEGES; //현재의 사용자 권한을 모두 날려주고, 최신 사용자 권한 정보를 다시 읽어들이는 기능을 한다.
즉, 현재의 사용자 권한을 새로 고친 후, 변경된 권한 정보를 반영하는 것을 뜻한다.
이 명령어는 권한 정보가 올바르게 반영되지 않은 경우에 사용하며, 권한 정보를 새로 고친 후, 올바르게 동작하도록 하는데 사용된다.

톰캣이랑 DB 연동하기

톰캣 서버에서

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.19.tar.gz
tar zxvf mysql-connector-java-8.0.19.tar.gz
cd ./mysql-connector-java-8.0.19/
cp mysql-connector-java-8.0.19.jar /usr/local/tomcat9/lib/

톰캣 재시작

/usr/local/tomcat9/bin/shutdown.sh	//종료
/usr/local/tomcat9/bin/startup.sh	//시작

최종 확인

톰캣에 db.jsp 파일 생성

vi	/usr/local/tomcat9/webapps/[이니셜]/db.jsp

파일 안에 내용 채우기

<%@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>

실행결과

db연결 실행결과

 

728x90
반응형
LIST