WAS

반응형

Web Server

 

개념


클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 콘텐츠(. html,. png,. css 등)를 제공하는 서버

 

정적 컨텐츠를 제공하는 서버!

 

HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스하는 기능을 담당

 

1. 정적인 콘텐츠 제공

WAS를 거치지 않고 바로 자원을 제공한다.(. html. jpeg. css)

 

2. 동적인 콘텐츠 제공을 위한 요청 전달

클라이언트의 요청(Request)을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달(응답, Response)한다.

 

클라이언트는 일반적으로 웹 브라우저(크롬, IE, FireFox 등)를 의미

 

 

사용 이유


누군가 이런 말을 한다. 요즘 WAS만 설치하면 웹 서버 기능도 다 하던데? 굳이 필요 있나?

그 이유를 설명합니다.

 

1. 서버 부하 방지

 

이미지 파일이 클라이언트에게 가는 과정

1-1. 클라이언트 접속 (www.naver.com)

1-2.HTML 문서 받음

1-3. 필요한 이미지 파일, JS 파일 받음

 

Web Server를 통해 정적인 파일들을 WAS까지 가지 않고 앞단에서 빠르게 보내줄 수 있다.

따라서 Web Server에서는 정적 콘텐츠만 처리하도록 기능을 분배하여

 

서버의 부담을 줄일 수 있다!!

 

2. 보안 강화

 

SSL에 대한 암호화, 복호화 처리에 Web Server를 사용!

 

3. 로드 밸런싱 ( Load Balancing )

 

fail over(장애 극복), fail back 처리에 유리

특히 대용량 웹 애플리케이션의 경우(여러 개의 서버 사용) Web Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.

예를 들어, 앞 단의 Web Server에서 오류가 발생한 WAS를 이용하지 못하도록 한 후 WAS를 재시작함으로써 사용자는 오류를 느끼지 못하고 이용할 수 있다.

 

Load Balancing을 위해서 Web Server를 사용!

 

예시

WAS1 과부하 CPU 80% 이상

WAS2로 부하 분산

 

대표 Web Server 종류

Apache Server
Nginx
MS IIS

 

 

WAS(Web Application Server)

 

개념


동적 콘텐츠를 제공하기 위해 만들어진 애플리케이션 서버 (DB 조회, 로직 처리가 요구되는 콘텐츠)

 

동적 콘텐츠를 제공하는 서버!

 

“웹 컨테이너(Web Container)” 혹은 “서블릿 컨테이너(Servlet Container)”라고도 불린다

Container란 JSP, Servlet을 실행시킬 수 있는 소프트웨어를 말한다.

즉, WAS는 JSP, Servlet 구동 환경을 제공한다.

 

WAS는 JSP, Servlet 구동 환경을 제공!

 

 

사용 이유


WAS = Web Server + Web Container

Web Server 기능들을 구조적으로 분리하여 처리하고자 하는 목적으로 제시되었다.

분산 트랜잭션, 보안, 메시징, 스레드 처리 등의 기능을 처리하는 분산 환경에서 사용된다.

주로 DB 서버와 같이 수행된다.

현재는 WAS가 가지고 있는 Web Server도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다.

 

1. 프로그램 실행 환경과 DB 접속 기능 제공

2. 여러 개의 트랜잭션(논리적인 작업 단위) 관리 기능

3. 업무를 처리하는 비즈니스 로직 수행

 

대표적 WAS 종류

Apache Tomcat
WildFly Jboss
TmaxSoft Jeus
IBM Web Sphere

Web Server와 WAS 차이 정리

Web Server : 정적

WAS : 동적

 

Web Server와 WAS를 따로 두는 이유 정리

1. 서버부하 방지

2. 하나의서버 혼용 Application (java, php.. 등)사용 가능

3. 로드밸런싱

즉, 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 Web Server와 WAS를 분리한다.

 

명칭


1. 하나의 서버에 WEB,WAS, DB 설치 : single-Tier

2.WEB 서버 , WAS,DB 서버 : 2-Tier

3.WEB 서버 , WAS 서버 , DB 서버 : 3-Tier


[WAS] Cent 7 서버 구축해보기!

https://java119.tistory.com/8?category=811335

 

 

 

 

 

 

반응형
반응형

이 WAS 서버는 Spring 기반 프로젝트를 대상으로 올리는 WAS 서버입니다.

 

보통 실제 프로젝트는 Web Was DB 3티어지만 여기서는 싱글티어로 설정합니다 참고 바랍니다.

 

1.가상 OS에 CentOS 7 iso 삽입

소프트웨어 선택 -> 기본 웹 서버 설치

비밀번호 설정 후 기다려줍니다.

2.IP 세팅

보통 기본으로 DHCP로 되어있습니다. IP를 정적으로 바꿔줍시다

vi /etc/sysconfig/network-scripts/ifcfg-ens랜덤숫자 (os마다 끝에 숫자가 다르다) 

vi 에디터를 모르시는 분들은 vi 에디터 사용법 먼저 숙지하셔야 됩니다.

 

편하게 복붙용

BOOTPROTO="static"
IPADDR="172.10.0.35"
GATEWAY="172.10.0.1"
DNS1="8.8.8.8" //구글 DNS

최종 IP 세팅

3.SSH 설치 (기본 웹서버로 설치하면 설치 돼있으므로 패스)

 

4.JDK 설치 (여기서는 openjdk로 설치하겠습니다.)

 

(복붙하기 쉽게 코드블럭)

//yum list java*jdk-devel 설치 가능 java 버전들 확인
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
//설치 중간에 y 눌러줘야 한다.

//설치 확인
rpm -qa java*jdk-devel

javac 경로 확인
which javac //이건 심볼릭 링크 주소

java -version 확인
readlink -f /usr/bin/javac 명령어 //심볼링 링크의 원본 주소를 알려주는 명령어

설치를 하고나면 기본 경로는 /usr/lib/jvm/java-1.8.0-openjdk-~......가 된다

일단 이름이 너무 길고 경로도 통일 해주기 위해 이름과 경로를 변경한다.

cd /usr/lib/jvm/
mv java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64/ openjdk-1.8
mv openjdk-1.8/ /usr/local/

5.apache-tomcat 설치 (tomcat 파일은 공식 톰캣 홈페이지에서 받을 수 있다.)

먼저 다운로드 받은 톰캣.tar 파일 FTP(FileZilla 사용)로 WAS 서버에 파일을 보낸다.

WAS 터미널에서 압축 풀기

tar -zxvf tomcatFileName.tar

gunzip //압축이 바로 안풀릴경우 이 명령어 실행
// 압축 풀기 후 이름 및 경로 설정
mv apache-tomcat-8.5.34 apache-tomcat
mv apache-tomcat /usr/local/

 

환경변수 설정

vi /etc/profile

export JAVA_HOME=/usr/local/openjdk-1.8
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export CATALINA_HOME=/usr/local/apache-tomcat
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

:wq

source /etc/profile //파일변경 후 적용 명령어 꼭 해줘야한다.

//환경 변수 확인
echo $JAVA_HOME
echo $CATALINA_HOME

 

방화벽 설정

//방화벽 포트 허용
firewall-cmd --permanent --zone=public --add-port=8080/tcp //tomcat
firewall-cmd --permanent --zone=public --add-port=80/tcp //web
firewall-cmd --permanent --zone=public --add-port=3306/tcp //mysql
firewall-cmd --permanent --zone=public --add-port=443/tcp // https

firewall-cmd --reload
firewall-cmd --list-all

톰캣 실행 테스트

/usr/local/apache-tomcat/bin/startup.sh

ifconfig //자기 서버의 IP 알아내기

인터넷 브라우저 URL에 자기 IP 검색

이렇게 고양이가 나오면 정상적으로 실행이 된것이다.

 

하지만 저 뒤에 붙는 :8080이 거슬린다 (실제 서비스 URL에도 보면 :8080 붙은 페이지는 없다)

vi /usr/local/apache-tomcat/conf/server.xml

<Connector port="80" protocol="HTTP/1.1" // port를 8080-> 80 으로 변경
               URIEncoding="UTF-8" // 인코딩 추가
               connectionTimeout="20000"
               redirectPort="8443" />
               
/usr/local/apache-tomcat/bin/shutdown.sh
/usr/local/apache-tomcat/bin/startup.sh

그리고 다시 아이피를 입력해서 들어가면 8080 없이도 잘된다.

 

톰캣 자동실행 서비스 등록

 

WAS 서버가 갑자기 재부팅 되더라도 톰캣이 저절로 실행될 수 있게 자동실행 서비스를 등록한다.

/usr/local/apache-tomcat/bin/shutdown.sh //기존 실행 중이던 톰캣 종료

//vi /usr/lib/systemd/system/서비스이름.service
//저는 was01-tomcat이라고 하겠습니다.

vi /usr/lib/systemd/system/was01-tomcat.service

[Unit]
Description=tomcat8
After=network.target syslog.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/openjdk-1.8
User=root
Group=root
ExecStart=/usr/local/apache-tomcat/bin/startup.sh
ExecStop=/usr/local/apache-tomcat/bin/shutdown.sh
UMask=0007
RestartSec=10
Restart=always

SuccessExitStatus=143
[Install]
WantedBy=multi-user.target

 

서비스 관리

systemctl enable was01-tomcat.service //서비스 등록
systemctl start was01-tomcat.service //서비스 시작
ps -ef | grep was01-tomcat //확인
reboot //재부팅(팅김 상황 테스트)
ps -ef | grep was01-tomcat //재부팅후 서비스가 올라왔나 확인

WAR 파일(웹 프로젝트 파일) 올리기

먼저 FTP로 WAR 파일을 WAS 서버로 전송

이때 WAR 파일 이름을 ROOT.war로 저장한다.

mv ROOT.war /usr/local/apache-tomcat/webapps/

6.MariaDB 설치

yum install mariaDB 설치해도 되지만 버젼이 5.5이다.

MariaDB.repo 파일을 생성해주자

vi /etc/yum.repos.d/MariaDB.repo

# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
		
#64비트인경우
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
	
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

//저장 후

yum remove mariadb-server mariadb-libs -y //기존에 설치되어있는 MariaDB 서버 라이브러리 삭제

yum install MariaDB-server MariaDB-client MariaDB-common -y

설치 후 인코딩 설정

vi /etc/my.cnf

[mysqld]
character-set-server=utf8

//저장

mysql MaridDB 들어가보기

systemctl start mariadb // 실행
systemctl enable mariadb // 서비스 자동실행 등록

mysql -u root -p 
Enter password: //처음에 설치했을땐 패스워드가 없기 때문에 그냥 엔터

//root 비밀번호 설정

show databases;
use mysql;
update user set password=password('새 비밀번호') where user = 'root';

flush privileges; // 적용

select user,password from user; // 확인

 

이로써 최~~~~~~~~~~~~소한의 WAS 서버가 완성됐다.

 

최종 정리

Centos 7 Server
openjdk 1.8.0
apache-tomcat 8.5.34
MariaDB 10.1

 

반응형

+ Recent posts