시스템아 미안해

#2. 유튜브 얄코 영상 정리 - 아파치, NginX, 톰캣이란? 본문

web/서버(Apatche Tomcat)

#2. 유튜브 얄코 영상 정리 - 아파치, NginX, 톰캣이란?

if else 2022. 6. 6. 14:08

엄청 설명을 잘해주신 유튜브 영상이 있어서 정리를 해봤습니당 

링크 : https://youtu.be/Zimhvf2B7Es

출처) 유튜브 얄팍한 코딩 사전 - 아파치, NginX, 톰캣이 뭔가요?( + 웹서버, WAS, 로드밸런싱, 프록시) 

 

서버란? 컴퓨터는 역할적인 측면에서 서비스를 해주느냐, 제공받느냐에 따라 서버와 클라이언트로 나뉘고, 서버는 서비스를 제공해주는 쪽이다. 

웹 서버는 어떤 컴퓨터로 하여금 서버 역할을 하도록 해주는 '소프트웨어'를 지칭.
ex) NginX, Apache, IIS(윈도우 서버라 생소함)


'웹'서버에서의 웹은 서버들 중에서도 웹사이트를 서비스 제공해주는 것. 

브라우저가 읽을 수 있는 html, css, js파일들을 서버의 특정 디렉토리에 넣어놓음. 

그리고 브라우저가 서버에 지정된 특정 웹주소로 접속하면 이것들을 받아갈 수 있도록 하는것.  


but 이건 정적인 웹임. 완제품들을 갖다놓기만 하는것. (html, css, js의 완제품)
동적인 웹은 요청사항을 즉석에서 뿌려주는 것. 아파치나 NginX의 '모듈'로 할 수 있음
오래된 예로 APM( apache + php +mysql)이 있음.

여기서 필요한건 WAS임. WAS가 동적인 면을 담당함.
아파치나 NginX는 스프링같은거 끼고 작업하면 톰캣같은 WAS가 필요로 하게 됨(ex) tomcat, jetty, undertow)

 

[WAS와 웹서버와의 관계]
웹서버가 앞에서 정적인 페이지 깔아주고, WAS가 뒤에서 동적인 데이터 처리해주는 것!  
 
사실 웹서버 없이 WAS 혼자서도 동적인 데이터 처리하고, 브라우저에 직접 정적인 웹을 깔아줄 수도 있지만,

(예전보다 WAS의 정적인 data처리도 빨라져서) 

★웹서버를 같이 쓰는 이유!

1. reverse proxy : 
서버 내부적으로 파일의 위치나 속도 등을 숨김
보안적인 이유임. 구글에 아파치 보안 설정 쳐보면 됨.

2. loadbalancing : 
웹서버가 톰캣이나 다른 WAS들에게 분산해서 작업 요청. WAS가 분산처리를 하게 되면
사용자는 끊김 없이 서비스를 제공받을 수 있다. 

3. 캐싱
(forward proxy의 캐시는, 한 번 받아온 '정적 파일'이 '클라와 서버 사이'에 있는 
프록시 서버에 쌓아놨다가, 같은 파일을 받아 갈때 서버에 다시 갈 필요없이 사용자와
서버 사이에 있는 프록시 서버에서 가져가는것.)  
여기서는 웹서버가 reverse proxy로써 제공하는 캐시. forward proxy와 다른점은

reverse proxy는 '서버단에서의' 캐시임.

>> 보안과 운영 목적에서 web server를 이용함 

apache는 오래전부터 사용되어 오던것. NginX가 등장한 이후 apache의 점유율을
따라잡는 추세임. 이 둘의 작동방식 차이점

  • 아파치는 멀티 프로세스 모듈 방식(MPM) - 클라가 접근할때마다 프로세스 생산,
    (손님 하나 하나 대접하는 방식) 
  • NginX는 event driven방식.  한 프로세스 안에서 스레드를 새로 생성하는 방식.
    (데스크에 손님들 모두 일렬로 앉혀놓고 차례대로 처리하는 방식) 

>> 성능과 가벼움을 중시하는 서비스는 NginX, 다양하고 안정성을 추구하면 아파치 사용.


번외) 톰캣 사용방법 : 

 

1. 스프링으로 코딩한 웹application을 war파일로 빌드하면, 그 안에 .class파일, jsp, 이미지, css, js파일등이 압축돼있음
2. 톰캣을 다운받으면 하나의 폴더 안에 여러 폴더들과 파일들이 들어있는데, 이 중 특정 폴더에 war파일을 넣고 명령어를 실행하면 스프링 서비스가 톰캣을 사용해서 돌게 되는것.


<-- 요즘은 반대로 스프링을 톰캣이 들어있는 jar파일로 빌드해서 배포함 

'web > 서버(Apatche Tomcat)' 카테고리의 다른 글

JSP의 el표현식  (0) 2022.06.16
로그인 일치 여부 처리  (0) 2022.06.08
#1. Apache Tomcat이란? (번외_웹서버의 인기 순위)  (0) 2022.06.06