개요
1. WEB 서버와 WAS 서버의 차이
; Web Server
- HTML, CSS, js, jpg 등 정적인 데이터를 처리하는 웹서버를 말한다.
- Web Server로 많이 사용하는 소프트웨어로는 Apache, IIS, Nginx 등이 있다.
- Apache, IIS와 같은 소프트웨어는 HTML/CGI나 기타 웹 문서들을 HTTP
규약에 따라 웹 클라이언트와 주고받으며 통신하는 것이 주 역할이다.
; WAS(Web Application Server) Server
- JSP, ASP, PHP 등 사용자의 입력을 받아 서버에서 무언가를 처리하고
그 결과를 보여주는 동적인 데이터를 처리하는 웹서버를 말한다.
- WAS로 많이 사용하는 소프트웨어로는 BEA사의 Web Logic, IBM사의
Web Sphere, T-max사의 Jeus, Tomcat, Redhot사의 JBoss 등이 있다.
- WAS는 규모가 크고 엔터프라이즈 환경에 필요한 트랜잭션, 보안, 트래픽관리,
DB커넥션 풀, 사용자 관리 등등의 다양하고 강력한 기능을 제공하는 S/W를
의미한다.
2. WAS 관련 용어 및 기타 특징
; 흐름(진행)
- 사용자 요청(웹 브라우저) → 웹 서버 → WAS(동적 처리) → 웹 서버 →
사용자 응답 메시지(웹 브라우저)
- WAS는 정적,동적 처리 둘다 가능하지만 정적처리를 WAS가 하게되면 부하가
많이 걸려서 좋지 않기 때문에 동적 처리를 한다.
; WAS, Web Server를 따로 두고 쓰는 이유
- 성능때문으로 알고 있으나, 톰캣5.5 이상부터는 httpd의 native모듈을
사용해서 정적파일을 처리하는 기능을 제공하는데, 이것이 순수 아파치
Httpd만 사용하는 것과 비교해서 성능이 전혀 떨어지지 않는다고 한다.
- 그럼에도 톰캣앞에 아파치를 두는 이유는 하나의 서버에서 php애플리케이션과
java애플리케이션을 함께 사용하거나, httpd 서버를 간단한 로드밸런싱을
위해서 사용해야 할 때 필요하기 때문이라고 한다.
; 아파치 웹서버와 아파치 톰켓의 차이
- Apache Web Server는 일반적으로 말하는 '웹 서버'를 말한다.
- Apache Tomcat는 'WAS 서버(WEB 서버 내장)'를 말한다.
; 언어별 웹 서버 구성
- (JAVA) JSP, Servlet → 아파치 톰켓 → WAS 서버 (WEB서버 내장)
- (C,C++) PHP → RWAPM → WAS 서버 (WEB서버 내장)
3. 기본 작업
3.1 방화벽 포트 추가
# mkdir /backup
# cp -p /etc/profile /backup/
# vi /etc/firewalld/zones/public.xml
8080, 8443 포트 추가
# firewall-cmd --reload
3.2 Java 환경 구성
# cd /export/home/samadal/
# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 8월 22 16:25 /usr/bin/java -> /etc/alternatives/java
3.3 시스템 환경 변수에 java 등록
# readlink -f /usr/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64/jre/bin/java
→ 원본 파일의 절대경로(완전한 경로)를 가져온다
3.4 테스트
# ls -l /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64/
# vi /etc/profile
79JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64/
80 PATH=$PATH:$JAVA_HOME
81 CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
# source /etc/profile
# echo $JAVA_HOME
# echo $PATH
# echo $CLASSPATH
# vi Hello.java
# cat Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
# javac Hello.java
# java -cp . Hello
3.5 Tomcat 설치
# wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.27/bin/apache-tomcat-8.5.27.tar.gz
# tar xvzf apache-tomcat-8.5.27.tar.gz
# ls -l
# ls -l /usr/local/
# mv apache-tomcat-8.5.27 /usr/local/tomcat8
# ls -l /usr/local/

3.6 시스템 환경 변수에 Tomcat 등록
# vi /usr/local/tomcat8/conf/server.xml

# vi /etc/profile
79 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64/
80 CATALINA_HOME=/usr/local/tomcat8
81 CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
82 PATH=$PATH:$JAVA_HOME/bin:/bin:/sbin
83 export JAVA_HOME PATH CLASSPATH CATALINA_HOME
# source /etc/profile
# echo $JAVA_HOME
# echo $PATH
# echo $CLASSPATH
# echo $CATALINA_HOME
3.7 톰캣 실행
# /usr/local/tomcat8/bin/startup.sh
톰캣 종료
# /usr/local/tomcat8/bin/shutdown.sh
# ps -ef | grep tomcat8


3.8 톰캣 테스트
3.9 Systemctl에 Tomcat 등록

3.10 Tomcat Manager 설정
3.11 Tomcat 실행 / 종료
3.12 웹 브라우저 접속