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