오늘은 아파치와 톰캣을 연동할 것이다.


Why 아파치와 톰캣을 연동하니?

톰캣은 WAS이지만 Web 서버의 기능도 갖고 있어서 사용하는데 문제가 생기지는 않지만,

톰캣의 Web 서버 기능은 아파치보다 처리 속도가 느리기 때문에 정적인 페이지는 아파치가 처리하고,

동적인 페이지는 톰캣이 처리할 수 있도록 해주기 위해 아파치와 톰캣을 연동한다.

이렇게 연동시키게 되면 부하를 분산시킬 수 있다.


아파치(Apache)를 설치해보자!!


1. 설치 전 패키지 업데이트를 먼저 진행한다.

# 패키지 업데이트 명령어

apt-get update


2. 업데이트가 끝나면 아파치를 설치한다.

# 아파치 설치 명령어

apt-get install apache2


설치 중간에 계속 할거니? 라고 물어보면 Y를 입력하여 설치를 계속 진행한다.


3. 설치가 끝났으면 확인을 해보자.

# 아파치 버전 확인 명령어

apache2 -v


netstat은 시스템의 네트워크 연결 목록(tcp, udp, 소켓 연결)을 보여주는 유틸리티이다.

netstat을 사용하여 아파치가 정상적으로 동작하고 있는지 화인한다.


# 아파치 네트워크 연결 목록 확인 명령어

netstat -ntlp | grep apache2


4. 다음으로 아파치 포트로 접속할 수 있도록 방화벽에 등록한다.(80은 아파치의 기본 포트이다.)

# 방화벽에 아파치 포트 허용하도록 등록하는 명령어

ufw allow 80/tcp


5. 방화벽에 등록까지 끝났으면 이제 아파치를 실행해보자.

# 아파치 실행 명령어

/etc/init.d/apache2 start

또는

service apache2 start


6. 아파치가 실행되면 확인을 위해 서버 주소를 입력한다.



위와 같은 화면이 나오면 정상적으로 설치 된 것이다.


7. 아파치(Apache2)와 톰캣(Tomcat8)을 연동하기 위해 연동커넥터인 mod_jk를 설치한다.

# mod_jk 설치 명령어

apt-get install libapache2-mod-jk


8. /etc/apache2/ 경로에 properties 파일을 생성한다.

#workers.properties 파일 생성 명령어

nano /etc/apache2/workers.properties


9. 파일을 생성했으면 그 파일에 아래의 내용을 입력한다.

#properties 파일에 입력할 내용

workers.tomcat_home=톰캣 설치 경로

workers.java_home=jdk 설치경로


# Define 1 real worker ajp13

worker.list=임의의 이름


# Set properties for tomcat1 (ajp13)

# 포트는 tomcat server.xml 파일 AJP/1.3 Connector의 Port

worker.임의의 이름.port = 포트

worker.임의의 이름.host = 톰캣서버 아이피 주소

# apache + tomcat 통신 프로토콜

worker.임의의 이름.type = ajp13

worker.임의의 이름.lbfactor = 1


workers.tomcat_home=/usr/share/tomcat8

workers.java_home=/usr/lib/jvm/java-8-openjdk-amd64


# Define 1 real worker ajp13

worker.list=tomcat1


# Set properties for tomcat1 (ajp13)

# 포트는 tomcat server.xml 파일 AJP/1.3 Connector의 Port

worker.tomcat1.port = 8009

worker.tomcat1.host = 13.125.126.162

# apache + tomcat 통신 프로토콜

worker.tomcat1.type = ajp13

worker.tomcat1.lbfactor = 20



내용을 다 입력했으면 Ctrl + X → Y → 엔터 를 입력하여 저장한다.


10. 다음으로 jk.conf 파일을 수정한다.

#jk.conf 파일 여는 명령어

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


아래 사진의 빨간색으로 표시된 부분을 찾아 주석으로 막아준다.


그 후 아래 사진처럼 내용을 입력한다. 이렇게 하는 이유는 /etc/apache2/ 경로에 생성한 workers.properties로부터 설정 정보를 가져오기 위해서이다.


내용을 입력한 후 Ctrl + X → Y → 엔터 를 입력하여 저장한다.


11. 이제 000-default.conf 파일을 수정해보자.

#000-default.conf 파일 여는 명령어

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


빨간색으로 표시된 DocumentRoot /var/www를 주석처리한다. 그리고 아래에 톰캣의 webapps 아래 실행할 웹 프로젝트 경로를 적어준다.


webapps아래에 BOMBEE 라는 폴더에 프로젝트를 배포하기 때문에 DocumentRoot /var/lib/tomcat8/webapp/BOMBEE라고 입력해줬다.

(ROOT폴더에 웹 프로젝트를 배포하려면 DocumentRoot /var/lib/tomcat8/webapp/ROOT/ 라고 입력하면 된다.)


JkMount /* tomcat1 부분은 모든 URL(/*)을 톰캣에게 바인딩하는 부분이다. tomcat1은 workers.properties에 입력한 연동할 톰캣의 이름이다.


만약 톰캣에 배포된 프로젝트가 여러 개이고 특정 프로젝트만 URL을 바인딩 해야 한다면, /* 부분을 수정해주면 된다.

예를 들어 배포된 프로젝트가 pro1, pro2 이렇게 있는데 pro1만 바인딩하려면 JkMount /pro1/* tomcat1 이렇게 수정하면 된다.



12. 다음으로 수정해야 할 파일은 톰캣의 server.xml 파일이다.

#server.xml 파일 여는 명령어

nano /etc/tomcat8/server.xml


빨간색으로 표시된 부분의 주석을 없애준다.

13. 아파치와 톰캣을 재시작한다.

#아파치와 톰캣 재시작 하는 명령어

service apache2 restart

service tomcat8 restart


14. 브라우저에서 확인해본다.

서버에 배포된 웹 프로젝트를 실행하기 위해 서버IP주소:8080을 입력한다.


주소창에서 8080을 지우고 접속해도 웹 프로젝트가 실행되는 것을 확인할 수 잇다.


여기까지 되면 정상적으로 연동된것이다.

끝!




[출처]

http://sisiblog.tistory.com/12

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

앞서 톰캣을 설치했으니, MySQL까지 설치해보자.


1. 먼저 설치가능한 MySQL 전을 확인한다. (여기서 나는 5.7버전을 설치할 것이다.)

# MySQL 버전 확인 명령어

apt-cache search mysql-server



2. 버전을 확인한 후, MySQL 설치 명령어를 실행한다.

# MySQL 설치 명령어

apt-get install mysql-server-5.7 -y



설치 도중에 MySQL root(최상위 계정)의 비밀번호를 입력하는 부분이 나온다.

잊어버리지 않을, 절대 기억할 수 있는 비밀번호를 입력하고 엔터를 누른다.



앞에 입력했던 비밀번호를 확인하는 창이 나온다. 좀 전에 입력한 root 비밀번호를 다시 한 번 입력한다.



3. 설치가 끝났으면 MySQL이 정상적으로 설치되었는지 확인한다.

# MySQL 설치 확인 명령어

/etc/init.d/mysql status

netstat -ntlp | grep mysqld




이렇게 뜨면 정상적으로 잘 설치된 것이다!


4. MySQL에 접속하여 Database를 조회한다. (제대로 설치됬는지 다시 한 번 확인하기 위해서!!!!!!!!!)

# MySQL 접속 명령어

mysql -u root -p -e'show databases'

입력 후에 비밀번호를 입력한다.



이렇게 나온다면 정상적으로 설치된 것이다!


5. 다음으로 MySQL 한글 설정을 하기 위해 설정이 있는 곳으로 이동한다.

MySQL은 기본 언어셋이 latin1로 되어있다. latin1로 되어있을 경우 한글 입력 시 깨지는 문제가 발생한다.

이 문제를 해결하기 위해 설치 후에 반드시 한글 설정을 따로 해줘야 한다.

# MySQL 설정 파일이 있는 곳으로 이동하는 명령어

cd /etc/mysql/conf.d


# 파일 목록 보는 명령어

ls


설정 파일이 들어있는 곳으로 이동한 후에 ls 명령어를 통해 폴더 안에 어떤 파일들이 있는지 확인해본다.



여기서 우리가 한글 설정할 때 사용할 파일은 mysql.cnf 이다.


6. 명령어를 입력하여 mysql.cnf 파일을 열어 수정할 수 있도록 한다.

# MySQL 설정 파일 열기 위한 명령어

nano mysql.conf



7. 파일을 열었을 때 입력되어 있는 [mysql]을 지운 후, 설정 내용을 입력한다.

# MySQL 설정 파일에 입력할 내용

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

character-set-server=utf8

collation-server=utf8_general_ci

init_connect = set collation_connection = utf8_general_ci

init_connect = set names utf8

 

[mysql]

default-character-set=utf8

 

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

default-character-set=utf8

 

[client]

default-character-set=utf8

 

[mysqldump]

default-character-set=utf8




설정 내용을 다 입력한 후, Ctrl + X → Y → 엔터 를 눌러 저장한다.


8. 설정이 끝났으면 MySQL재시작한다.

# MySQL 재시작을 위한 명령어

/etc/init.d/mysql restart



9. 설정이 잘 반영 되었는지 확인 해보자. MySQL root 계정으로 로그인하여 status 명령어를 통해 확인한다.

# MySQL root 계정으로 로그인 하는 명령어

mysql -u root -p

입력 후에 비밀번호를 입력한다.



# MySQL 상태 보는 명령어 명령어

status


표시된 부분이 utf8로 변경되었다면 정상적으로 설정이 반영된 것이다.

여기까지 MySQL 설치 및 설정 하는 방법 끝!


MySQL 사용자 계정 생성 및 외부 접속 설정은 다음 포스팅에서!!!!




[참고]

http://all-record.tistory.com/183?category=733055


오늘은 우분투 서버에 톰캣(Tomcat)을 설치하고 실행까지 해보자.

웹 서버 구축을 위해서는 WAS(Web Application Server)인 톰캣이 필요하다.


여기서 잠깐!

WAS(Web Application Server)란?

인터넷상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)이라고 우리 모두의 백과사전 위키백과가 알려준다.

웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다.


톰캣을 사용하는 이유?

톰캣은 개발자가 만든 애플리케이션을 실행할 수 있는 환경을 제공하는 서블릿 컨테이너 역할을 한다.

따라서 웹 애플리케이션 파일을 톰캣 파일 아래에 저장해둔다.


자, 이제 설치하러 가보자.


1. 일단, 톰캣을 설치한다.

# 톰캣 설치를 위한 명령어

apt-get install tomcat8 -y

(나는 톰캣 8버전을 사용할 것이다.)



2. 설치를 다 했으면 톰캣의 버전을 확인한다.

# 톰캣 버전 확인을 위한 명령어

/usr/share/tomcat8/bin/version.sh



3. 버전까지 확인이 끝난 후, 톰캣이 정상적으로 동작하는지 테스트한다.

여기서 잠깐!!!!

톰캣의 포트를 외부에서 접속이 되도록 방화벽에서 변경해야 한다. 

톰캣의 기본 포트는 8080이다. (만약 포트를 변경했다면 변경한 포트를 적어주면 된다.)

# 톰캣 포트를 외부에서 접속 가능하도록 방화벽에 등록해주는 명령어

ufw allow 8080(톰캣포트번호)/tcp



4. 이제 톰캣을 실행시켜보자!

# 톰캣 실행시키는 명령어

service tomcat8 start



5. 톰캣을 실행시켰으면, 제대로 작동하는지 확인을 해야한다. 그러기 위해서 서버 아이피주소:포트를 입력해보자.


이렇게 뜨면 정상적으로 잘 작동된 것이다!

톰캣 설치하고 작동시키기 끝!




[참고]

http://all-record.tistory.com/182?category=733055


오늘은 EC2를 이용해 만든 인스턴스인 우분투 서버에 JAVA를 설치할 것이다!


일단, SSH나 Telnet을 통해 작업할 때 원하는 간편하게 업로드 하거나 다운로드 받고 싶을 때 유용하게 사용할 lrzsz를 설치한다.

# 간편 업로드 및 다운로드를 위한 lrzsz 설치하기 명령어

apt-get install lrzsz


자, 이제 본격적으로 JAVA를 설치해보자!

1. JDK와 JRE 설치 명령어를 실행한다. 

(명령어마다 앞에 sudo를 붙여 관리자권한으로 실행시키기 귀찮으니 su - or su root 를 통해 관리자 권한으로 로그인했다.)

# JRE, JDK 설치하기 위한 명령어

apt-get install openjdk-8-jre

apt-get install openjdk-8-jdk



JDK 설치시 "계속 진행할거니?" 라고 물어보는데 이때 Y (응!)을 입력해주면 된다.


중간에 Y라고 입력하지 않고 바로 진행하려면 명령어 뒤에 -y 옵션을 달아준다.


2. 자바가 잘 설치되었는지 확인해보자.

# Java가 잘 설치되었나 확인하기 위한 버전 체크 명령어

java -version

javac -version


위에 있는 명령어를 실행하면 현재 설치된 자바 버전을 알 수 있다.


3. 이제 항상 헤매던 자바 환경변수 설정을 위해 자바가 설치된 위치를 확인해보자.

# Java 위치를 확인하기 위한 명령어

which javac

readlink -f /usr/bin/javac 

(위의 명령어에서 나온 경로를 -f 뒤에 적어준다.)


먼저 javac 위치를 확인한다.

여기서 잠깐!!

javac란?

javac는 오라클의 자바 개발 키트에 포함된 주요 자바 컴파일러이다. 

이 컴파일러는 자바 언어 사양을 충족하는 소스 코드를 받아들인 다음 자바 가상 머신 사양을 충족하는 바이트코드를 생성한다.

readlink ( get absolute path )란?

실제로는 symbolic link를 따라가서 마지막 값을 알려주는 명령어이지만, 일반 파일, 디렉토리에 대해서는 실제 절대 경로를 알려준다.

실행 결과를 보자.



javac의 실제 위치는 /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 라는 것을 확인할 수 있다.

따라서, $JAVA_HOME은 /usr/lib/jvm/java-8-openjdk-amd64 으로 설정해야 한다.


4. 위치를 확인했으니 이제 환경변수 설정을 해보자. 첫 번째로 profile을 연다.

# profile을 열기 위한 명령어

nano /etc/profile



5. 파일을 열었으면 환경변수를 입력한다.

# profile에 입력해야 하는 환경변수

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=$JAVA_HOME/bin/:$PATH

export CLASS_PATH=$JAVA_HOME/lib/:$CLASS_PATH


다 입력한 후에는 Ctrl + X → Y → 엔터를 눌러 저장한다.


6. 저장한 후에는 profile reload시킨다.

# profile을 reload하기 위한 명령어

source /etc/profile



7. 앞의 과정이 모두 끝났으면 우분투 서버를 재시작 한다.

# 우분투 서버 재시작하는 명령어

reboot now



8. 재시작 후 부팅이 끝났으면, echo 명령어를 이용하여 환경변수를 확인한다.

# 환경변수 확인하는 명령어

echo $JAVA_HOME

$JAVA_HOME/bin/javac -version



이렇게 잘 나오면 환경변수 설정 끝!





[출처]

https://ko.wikipedia.org/wiki/Javac

http://yolongyi.tistory.com/25

http://all-record.tistory.com/181


우분투 서버에 JAVA, Tomcat, MySQL 등등 웹 애플리케이션을 돌리기 위한 환경을 만들기 위해

일단 Xshell을 이용하여 우분투 서버에 접속을 해야 한다.


Xshell을 사용하여 우분투 서버 SSH 접속하기

1. Xshell을 실행하면 세션 창이 뜬다. 여기서 새로 만들기를 통해 새로운 세션을 만들어 줄 것이다.


2. 새로 만들기 버튼을 누르면 새 세션을 등록하기 위한 창이 뜬다. 연결에서 이름호스트를 적어준다.

(호스트는 EC2에서 새로 생성한 인스턴스의 IPv4 퍼블릭 IP이다.)


3. 다음으로 사용자 인증을 눌러 인증 방법을 Public Key로 바꿔준 후 찾아보기 버튼을 누른다.


4. 그러면 사용자 키 등록하는 창이 뜰 텐데, 가져오기를 누른 후 인스턴스 생성시 다운받았던 키 페어를 가져온다.


5. 마지막으로 비워뒀던 사용자 이름에 ubuntu라고 적은 후 확인을 누르면 끝!


6. 이제 세션에 접속해보자. 

   새로 생성한 세션을 선택 한 후 연결을 누른다.


7. 이렇게 막 쏼라쏼라 뜨면 성공!



우분투 서버 접속하기 끝!


일단, 아마존 웹 서비스를 사용하기에 앞서 아마존 웹 서비스(AWS)가 무엇인지 알아보자.


아마존 웹 서비스(Amazon Web Services; AWS)란?

AWS는 Amazon Web Services의 약자이다. 이것은 아마존이 제공하는 웹 서비스로, 각종 원격 컴퓨팅 서비스를 제공한다.


아마존이 제공해주는 서비스 중에 우리가 사용할 것은 Amazon EC2이다.


EC2(Elastic Compute Cloud)란?

쉽게 말해서, 한 대의 컴퓨터를 임대한다는 개념이다. 

다만, EC2는 물리적이 아니라 아마존에서 세계 각 지역에 만들어 놓은 인프라(데이터 센터)에 만들어지는 것이기 때문에 네트워크를 통해 제어해야한다.

EC2를 통한 가장 기본적인 업무는 웹 서버를 설치하고 이 웹 서버를 통해서 사용자가 웹 브라우저를 통해 요청하는 웹페이지나 이미지, 동영상 등을 제공하는 것이다.


이제 본격적으로 EC2 서비스를 이용하여 인스턴스를 생성하러 가보자. (인스턴스란 1대의 컴퓨터를 의미하는 단위이다.)


1. 인스턴스를 생성하기 위해 AWS 서비스 중에서 EC2를 선택한다.


2. 인스턴스 생성부분에서 인스턴스 시작을 누른다.


3. 1단계에서 Ubuntu Server를 선택한다.


4. 2단계에서 인스턴스 유형중 프리티어 사용 가능한 유형을 선택한 후에 검토 및 시작 버튼을 누른다.


5. 4번에서 검토 및 시작을 누르면 바로 7단계로 넘어가는데 여기서 시작을 눌러준다.


6. 시작을 누르면 기존 키 페어 선택 또는 새 키페어 생성이라는 창이 뜨는데, 여기서 우리는 새 키 페어 생성을 선택 한 후 키 페어 이름을 작성한다. 이름을 작성하고 나서 키 페어 다운로드 버튼을 통해 키 페어를 다운로드 한 후 인스턴스 시작 버튼을 누른다. 

(키 페어는 우분투 서버에 접속할 때 사용된다.)


7. 실행 중인 인스턴스 중 방금 생성한 인스턴스의 이름을 설정해 준다. (여러 개를 생성하게 되면 헷갈리니까^^;)


8. 새로 생성한 인스턴스(bombee22라고 이름 지어줌!)의 보안 그룹 명을 확인한다. 

(보안그룹에서 인바운드 규칙을 설정해야 하는데 이름이 헷갈릴 수 있기 때문에 미리 확인한다.)


9. 왼쪽 바에서 인스턴스 아~~~~래에 있는 보안 그룹을 클릭하여 들어간다.


10. 우리가 위에서 보고온 보안 그룹 명을 가진 애를 선택하여 인바운드 편집을 한다.


11. 우리에게 필요한 규칙을 추가한 후 저장을 한다.


이렇게 설정하면 일단은 끝!



[참고]

http://wanzargen.tistory.com/

http://codingmania.tistory.com/15

+ Recent posts