우분투에서 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