우분투에서 tomcat8로 자바 프로젝트 띄우기 1/2 : 톰캣을 띄워보자

우분투에서 tomcat8로 자바 프로젝트 띄우기 1/2 : 톰캣을 띄워보자

1. 리눅스(우분투)를 준비한다.

우분투를 설치한다. 설치는 USB 구워서 다음(Next) 신공을 구사하면 된다.

아니면 웹호스팅 업체에서 리눅스 가상서버 호스팅을 구입한 후, putty로 붙어도 된다.

개인적으로 후자를 이용하였음.

나의 환경 : Ubuntu 12.04.5 LTS (Release: 12.04)

우분투에서 버전 알아내는 명령어.

lsb_release -a

2. 자바 JDK를 설치한다.

필요한 버전을 설치하면 된다.

자바를 설치하는 명령어.

sudo apt-get install openjdk-7-jdk
sudo apt-get install openjdk-6-jdk
sudo apt-get install openjdk-7-jre
sudo apt-get install openjdk-6-jre

아래 명령어들은 인터넷에서 찾았는데 동작하지 않는다.
(sudo apt-get install oracle-java8-installer

sudo apt-get install oracle-java7-installer
sudo apt-get install oracle-java6-installer)

자바 설치 순서가 꼬였다면 아래 명령어로 자바를 버전을 직접 지정한다.

자바 버전을 지정하는 명령어.

update-alternatives –config java

3. 톰캣8을 웹사이트에서 다운 받아와서 우분투 안에 넣는다.

웹호스팅 업체를 이용 중이라면 FTP로 올리면 된다.

적당한 위치에서 (ex: /usr) 압축을 푼다.

폴더 이동.

cd /usr

압축 풀기.

tar -xvf apache-tomcat-8.5.9.tar.gz

이름 변경.

mv apache-tomcat-8.5.9 tomcat8

4. 톰캣을 심볼릭 링크 지정해준다.

편하려고 권장하는 사항이므로, 꼭 하지 않아도 된다.

ln -s 원본링크 타겟링크

ex) ln -s /usr/tomcat8 /tomcat

5. 환경 변수 지정.

프로파일 세팅을 잡아야 한다.

vi /etc/profile

가장 상단에 아래와 같이 입력한다.

자바 홈 경로나, 톰캣 경로(카탈리나)는 당신이 어디에 자바와 톰캣을 설치했느냐에 따라 달라질 수 있다.

(5-1 항목 참고)

JAVA_HOME=/usr
CATALINA_HOME=/usr/tomcat8
CLASSPATH=$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export JAVA_HOME CATALINA_HOME CLASSPATH PATH

5-1. 자바 위치를 모른다면 알아내서 JAVA_HOME 에 알맞게 쓴다. 

자바 위치 알아내기.

which java

위 방법 외에, 최상위 경로에서 하위를 모두 찾는 명령어가 있다.

find -name java

6. 프로파일을 현재 쉘에 적용시킨다.

source /etc/profile

7. 톰캣을 기동한다.

cd /usr/tomcat8/bin

./startup.sh

기동하는 쉘은 startup.sh 이다.

참고로, 종료하는 명령어.

cd /usr/tomcat8/bin

./shutdown.sh

7-1. 톰캣을 실행하기 전에 터미널을 하나 더 띄워서, 미리 로그에 tail을 걸어두자.

cd /usr/tomcat/logs

tail -f catalina.out

8. 아이피 주소로 접속 (톰캣 확인)

톰캣 서비스는 기본적으로 8080 포트를 사용한다.

정상적으로 기동되었다면,

http://ip주소:8080 을 입력했을 때, 아래와 같이 톰캣이 떠야 한다.

톰캣이 뜨지 않는다면 우선 tail 걸어놓은 catalina.out 을 보자.

거기에 왜 기동이 되지 않았는지 에러 로그가 떨어진다. 읽고 대응하도록 하자. 모르겠으면 구글링.

만약 톰캣이 떴는데도 아이피로 접속이 안된다면 아래와 같은 이유다.

1. 아이피가 틀렸다. (내가 이 경우였다. 한 자리 틀려서 20분 헤맸음.)

2. 포트가 틀렸다. server.xml 을 따로 수정하지 않았다면 8080 포트가 맞다.

3. 방화벽을 확인한다. (구글에 우분투 iptables 검색)

참고로 iptables는 우분투에서 자체 제공하는 방화벽 프로그램이다. 정책을 잘 넣어두면 디도스 같은걸 막을 수 있다.

참고. iptables

방화벽 현재 리스트 보기.

sudo iptables -L

정책 추가(APPEND) 명령어 형식.

iptables -A INPUT -s [근원지] –sport [근원지 포트] -d [목적지] –dport [목적지 포트] -j [정책]

방화벽에 허용 주소 추가하기 (8080 포트)

sudo iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT

방화벽에 포트 허용하기 (8080 포트)

sudo iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT

방화벽에 포트 허용하기 (80 포트)

sudo iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

디도스 공격 차단 : 1초동안 80포트에 똑같은 IP가 10번 이상의 SYN가 들어오면 드랍하는 정책.

sudo iptables -A INPUT -p tcp –dport 80 -m recent –update –seconds 1 –hitcount 10 –name HTTP -j DROP

TCP FLAG 중 전체를 보고 그 중 SYN 과 FIN이 있을 경우 차단하는 정책

sudo iptables -A INPUT -p tcp –tcp-flags ALL SYN,FIN -j DROP

TCP FLAG 중 전체를 보고 그 중 PSH 과 FIN이 있을 경우 차단하는 정책
sudo iptables -A INPUT -p tcp –tcp-flags ALL PSH,FIN -j DROP

아이피 x.x.x.x 차단

sudo iptables -A INPUT -s x.x.x.x -j DROP

아이피 대역 d클래스 전체 차단
sudo iptables -A INPUT -s x.x.x/24 -j DROP

포트25 차단
sudo iptables -A INPUT -p tcp –dport 25 -j DROP

포트587 차단
sudo iptables -A INPUT -p tcp –dport 587 -j DROP

국가별 차단 : 80포트로 접속국가가 KR이 아닐경우 모두 DROP

iptables -A FORWARD -p tcp –dport 80 -m geoip ! –src-cc KR -j DROP

———-

1강 우분투에서 tomcat8로 자바 프로젝트 띄우기 1/2 : 톰캣을 띄워보자 끝.

2강 우분투에서 tomcat8로 자바 프로젝트 띄우기 2/2 : 자바 프로젝트를 띄워보자 == http://blog.naver.com/bb_/220908002929