아파치, NginX, 톰캣이 뭔가요? (+ 웹서버, WAS, 로드밸런싱, 프록시)

황인성·2023년 7월 6일
0

movie

  • 웹서버(Apache, NginX, IIS) : 어떤 컴퓨터로 하여금 서버 역할을 하도록 도와주는 소프트웨어.
    Apache와 NginX가 대표적임
    서버 컴퓨터에 저장되어있는 파일들을 특정 폴더(디렉토리)에 넣어두면 이 폴더를 외부에서 접근 가능하도록 개방해서 서버에 지정된 웹사이트 주소로 접속하면 파일들을 받아갈 수 있도록 하는 것

웹 사이트가 서비스 될때 필요한 것 :
브라우저(Chrome, Edge, Firefox 등),
브라우저가 읽을 수 있는 파일들(HTML, CSS, JS 등)

이 파일들을 서버 컴퓨터로 전송할 수 있어야 함.

  • 정적 웹 : 블로그페이지나 회사 소개페이지처럼 내부 내용들이 바뀔 일없는 페이지를 고정된 HTML, CSS를 사용해서 출력한 웹

  • 동적 웹 : 데이터베이스에 있는 데이터같은 변수들에 따라서 사용자가 접속할 때마다 그때그때 페이지 내용을 만들어서 출력한 웹

동적 웹을 제공하는 것도 Apache나 NginX의 모듈로 가능함.

웹서버들(Apache, NginX, IIS)
페이지가 정적 웹일때는 고정된 HTML, CSS를 출력하기도 하고,
동적 웹일때는 데이터베이스에 있는 내용에 따라 출력하기도 하고,
때로는 식당 매니저의 역할도 함(?)

식당 매니저 역할 => Tomcat이나 Node.JS, Django와 같은 플랫폼에서 나온 코드를 클라이언트로 보낼 때 매니지먼트를 하기도 함.(사이트의 데이터를 전문적으로 처리함)

  • Tomcat : WAS의 일종. JAVA와 JSP로 만든 웹 또는 API 어플리케이션을 실행할 때 Tomcat과 같은 WAS(Web Application Server)가 사용된다. 웹과 서버 사이에 어플리케이션이 위치한다는 점에서 WAS와 같은 이름이 붙여졌고, 동적 사이트를 전문적으로 처리해주는 역할을 함.

단순 언어(PHP와 JAVA같은)로 구성된 코드를 클라이언트에게 전달할 땐 Apache, NginX와 같은 웹 서버들로도 충분하지만, 스프링이나 JSP와 같은 프레임워크를 사용해서 전달할 땐 WAS가 효율적이다.

그래서 Tomcat이 Spring과 같은 동적 사이트를 전문적으로 처리하고 Apache가 웹 서버의 역할로써 클라이언트에게 전달하는 형태이다.

Tomcat이 클라이언트에게 직접 전달하지 않는 이유는,
Reverse Proxy를 이유로 들 수 있다.
Reverse Proxy란 서버 내부적으로 보안을 강화하기 위한 수단으로써 로드를 분산시켜서 요청에 대한 부하를 줄이고(로드밸런싱), 정적, 동적 파일들이 어디에 위치하는지 감출 수 있을 뿐만 아니라(보안) 중복된 요청에 대해서는 곧장 캐시를 제공(캐싱)할 수 있는 장점이 있다. 그리고 이러한 작업을 ApacheNginX가 맡아서 할 수 있다.
**Proxy는 클라이언트와 서버 사이에서 중개 역할을 하는 시스템으로, 클라이언트의 요청을 전달하고 응답을 받아오는 역할을 담당함.
(정류장 수하물 센터같은 역할, 다시말해 서버까지 가서 가져오지 않아도 사용자에게 좀더 빨리 데이터를 전달해줄 수 있는 터미널.) => 사용자가 빨리 정보를 받아볼 수 있다.

profile
문제 해결을 위해 끊임없이 파고드는 걸 좋아합니다.

2개의 댓글

comment-user-thumbnail
2023년 8월 28일

이파치를 알기 위해선 vhost도 알아야함. 이후 ssl conp, httpd.conf? 이것도 ㅠㅠ

1개의 답글