[GCP-14] 웹서버를 만들어보자-1

2022. 1. 25. 16:25카테고리 없음

0. 지난 글

[GCP-1] 구글 클라우드 기본 개념

https://ejtag.tistory.com/23

[GCP-2] 구글 클라우드 실습 준비

https://ejtag.tistory.com/24

[GCP-3] 구글 클라우드 IAM - 권한

https://ejtag.tistory.com/25

[GCP-4] Compute Engine - 서버

https://ejtag.tistory.com/26 

[GCP-5] VPC - 네트워크 및 보안장비

https://ejtag.tistory.com/27

[GCP-6] Cloud Load Balancing - 부하분산

https://ejtag.tistory.com/29

[GCP-7] Google Cloud Storage - DB

https://ejtag.tistory.com/30

[GCP-8] Cloud SQL - DB

https://ejtag.tistory.com/31

[GCP-9] BigQuery - DB & 응용 & 빅데이터

https://ejtag.tistory.com/33

[GCP-10] Cloud Composer - 워크플로우 관리 (kubernetes)

https://ejtag.tistory.com/35

[GCP-11] source Repositories - 저장소

https://ejtag.tistory.com/36

[GCP-12] cloud Pub / Sub - 구독서비스 & 빅데이터

https://ejtag.tistory.com/38

[GCP-13] Stackdriver

https://ejtag.tistory.com/39

 

0. 개요

원래 maketpalce에 있는 세팅되어 있는 vm을 쓰려다 각각 파일들이 어디있고 어떻게 쓰는지 한참을 헤매서 그냥 민자 vm에서 시작하기로 했다.

  [환경세팅 구성]

- ubuntu-1804-bionic-v20220118

- apache2

- tomcat8

 

1. 프로젝트를만든다. (cloud-pentest)

참고 : https://ejtag.tistory.com/24

 

[GCP-2] 구글 클라우드 실습 준비

0. 지난글 https://ejtag.tistory.com/23 [GCP] 구글 클라우드 기본 개념 0. 지난글 클라우드 공부 입문 https://ejtag.tistory.com/22 [클라우드 공부] 클라우드 입문 0. 개요 요새 어딜가든 클라우드 플랫폼을..

ejtag.tistory.com

2. VM 인스턴스 만들고, 외부 IP 주소를 고정시킨다.

참고 : https://ejtag.tistory.com/26 

 

[GCP-4] Compute Engine

0. 지난글 [GCP-1]구글 클라우드 기본 개념 https://ejtag.tistory.com/23 [GCP-2]구글 클라우드 실습 준비 https://ejtag.tistory.com/24 [GCP-3]구글 클라우드 IAM https://ejtag.tistory.com/25 5. Compute Eng..

ejtag.tistory.com

 

3. WAS 설치 (tomcat8)

3-1. vm 인스턴스 옆에 ssh 버튼을 누른다.

3-2. 패키지 업데이트를 아래 명령어를 통해 한다.

sudo su

apt-get update

apt-get upgrade

dpkg-reconfigure tzdata

 

3-3. 자바를 설치하고 확인한다.

apt-get install openjdk-8-jre-headless

apt-get install openjdk-8-jdk

java -version

javac -version

3-4. tomcat 설치

apt-get install tomcat8

usr/share/tomcat8/bin/version.sh

3-5. 방화벽 규칙설정

GCP로 돌아와 VPC네트워크 → 방화벽 규칙 → 방화벽 규칙 만들기를 선택하여 방화벽 규칙을 만들자.

3-6. 웹페이지 접속 - 외부IP : 8080

 

4. DB 설치 (mariaDB)

4-1. mariaDB 설치를 아래 명령어 통해 한다.

apt-get install mariadb-server mariadb-client

 

//데이터베이스 초기화 작업 - 읽어보고 y 또는 n로 답하는데 모르는건 y로 해도 된다.

/usr/bin/mysql_secure_installation

 

//root의 인증 플러그인 정보 제거하기 - 비밀번호 인증 방식으로 바꾸기

mysql

use mysql;

update user set plugin='' where User='root';

flush privileges;

exit;

 

//기본 언어셋 설정

vim /etc/mysql/mariadb.conf.d/50-server.cnf

아래 두줄을 [mysqld]항목에 추가해주자.

 character-set-server = utf8mb4
 collation-server = utf8mb4_unicode_ci

//변경사항 적용

service mysql restart

 

4-2. DB 외부접속 허용하기

//3306 포트를 모든 IP주소에 대해 열려면 아래 파일을 열어 bind-address = 127.0.0.1을 주석처리해야한다.

vim /etc/mysql/mariadb.conf.d/50-server.cnf

또한 외부에서 접속 가능한 MySQL 유저를 생성하고 사용할 DB에 대한 권한을 준 후 해당 유저로 접속해야 한다.

select user from user;

//test라는 유저를 %아무곳에서나 3368 비밀번호로 접속허용하게 만들겠다.

create user 'test'@'%' identified by '3368

//잘 생성됬는지 확인

select user from user;

 * trouble SHOOTING ! - mariadb 에러

참고 : https://velog.io/@rkdms0204/ftsever-mysql-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95

 

5. 연결 드라이버 설치

//Java DataBase Connector 설치

apt-get install libmysql-java

//Tomcat8 라이브러리 폴더에 링크생성

ln -s /usr/share/java/mysql-connector-java.jar /usr/share/tomcat8/lib/mysql-connector-java.jar

//변경사항 적용

6. 웹 폴더 옮기기

apt-get install unzip

설정의 파일업로드를 통해 WEB-INF폴더의 상위폴더를 압축한 zip파일을 업로드 시킨다.
저장위치는 /home/구글아이디이다.

find / -name webapps

cd webapps경로

unzip zip파일경로 -d ./압축풀폴더명

service tomcat8 restart

 

7. 웹서버 설치(apache2)

7-1. 패키지 업데이트

apt-get update

 

7-2. 아파치 설치와 확인

apt-get install apache2

apache2 -v

netstat -ntlp | grep apache2

//아파치 포트로 접속할 수 있도록 방화벽에 등록

ufw allow 80/tcp

//아파치 실행

/etc/init.d/apache2 start

 

7-3. vm 외부 IP로 접속하면 다음 화면이 나온다.

 

8. 아파치와 톰캣 연동하기

8-1. 연동커넥터 mod_jk 설치

apt-get install libapache2-mod-jk

 

8-2. workers.properies 파일 생성

vim /etc/apache2/workers.properties

생성 후 해당 파일에 아래 내용 입력

=================================아래==============================

workers.tomcat_home=톰캣 설치경로
# 내경우 톰캣 설치경로 : /usr/share/tomcat8
workers.java_home=jdk 설치경로

# 내경우 jdk 설치경로  : /usr/lib/jvm/java-8-openjdk-amd64

 
# Define 1 real worker ajp13
worker.list=임의의 이름

#내경우 : tomcat1

 
# Set properties for tomcat1 (ajp13)
worker.임의의 이름.port = 포트      # tomat server.xml 파일 AJP/1.3 Connector의 Port 입력

 

# tomat server.xml 파일 AJP/1.3 Connector의 Port : 8009

worker.임의의 이름.host = 톰캣서버 아이피 주소
worker.임의의 이름.type = ajp13     # apache + tomcat 통신 프로토콜
worker.임의의 이름.lbfactor = 20

===================================================================


8-3. jk.conf 파일 수정

vim /etc/apache2/mods-available/jk.conf

변경 전
변경 후

8-4. 000-default.conf 파일 수정

vim /etc/apache2/sites-available/000-default.conf

DocumentRoot /var/www 라고 적힌 부분이 있다. 이 부분에 #을 적어 주석으로 변경한다.
그리고 아래에 톰캣의 webapps 아래 실행할 웹프로젝트 경로를 적어준다.
JkMount /* tomcat1 부분은 모든 URL ( /* )을 톰캣에게 바인딩 하는 부분이다. tomcat1은 workers.properties에 입력한 연동할 톰캣의 이름이다. 

8-5. 톰캣의 server.xml 파일 수정

vim nano /etc/tomcat8/server.xml

아래 주석처리된 부분을 주석을 없애준다.

8-6. 아파치, 톰캣 재시작

/etc/init.d/apache2 restart

/etc/init.d/tomcat8 restart

 

8-7. 웹브라우져에서 확인

 http://IP 주소:8080 를 쳤을때 나오는 톰캣 디폴트 페이지가 808포트를 지웠을때도 똑같이 나오면 연동 성공이다.

 

 

 

 

tomcat8, mariaDB 설치 참고문서

https://blog.naver.com/msjang4/221318463468

apache 설치하고 tomcat과 연동시 참고문서

https://all-record.tistory.com/188