웹 서버란?
웹 서버란 클라이언트로부터 HTTP 프로토콜로 요청을 받아 HTML 문서 등과 같은 정적 웹 페이지를 응답해주는 소프트웨어.
하드웨어 측면 : 컴포넌트 파일(html, images, css, javascript 등)들을 저장하는 컴퓨터. 도메인 이름을 통해 접속 가능.
소프트웨어 측면 : 웹 사용자가 어떻게 호스트 파일들에 접근하는지를 관리.
흔히 웹 서버라고 부르면 정적 웹 서버를 생각하면 되고 동적 웹 서버는 WAS를 생각하면 될 듯 하다.
웹 서버의 분류
- 정적 웹 서버 : 서버가 클라이언트가 요청한 파일을 가지고 있어 그래도 전송해주는 것.
- 동적 웹 서버 : 서버가 클라이언트가 요청한 것을 기반으로 컨텐츠를 데이터베이스로부터 생성하거나 처리하여 제공하는 것.
웹 서버의 종류
- Apache : 오래전부터 사용되어 온 웹 서버. 멀티 프로세스 모듈 방식 처리. 다양하고 검증된 기능을 사용하고 하는 경우.
- Nginx : 이벤트 처리. Apache의 점유율을 따라잡고 있다. 성능과 가벼움을 중요시하는 서비스에 많이 사용.
- IIS : 윈도우 서버
WAS란?
WAS란 일종의 미들웨어로 동적 서버 콘텐츠를 수행하는 서버이다.
예를 들어 웹 서버(Nginx)와 웹 애플리케이션(Django)간의 연결을 중계한다.
대표적으로 Tomcat, Jetty, Undertow 등이 있다.
여기서는 의문점으로는 Apache나 Nginx도 동적 처리가 가능하며 Tomcat 등 WAS들도 정적 처리를 할 수 있는데 왜 분리할까? 라는
의문이 있을 수 있는데 옛날에는 각각 처리 속도가 달라서 의미가 있었지만 지금은 빨라져서 의미가 없으며 그래서 이유로는
Apache나 Nginx는 reverse proxy 기능을 사용하여 서버의 IP를 숨기는 기능을 사용할 수 있고 다양한 보안 기능들을 제공하며 또한
로드밸런싱을 제공하여 분산 처리를 가능하게 여러 개의 WAS에 일 분담을 시킬 수 있다. 그리고 캐싱을 사용하여 캐시 안에 있는 데이터의
경우 빠르게 제공하는 기능까지 제공하여 웹 서버와 WAS는 기능적인 측면으로 분리하며 보안 과정도 생각한다고 보면 된다.
'개념' 카테고리의 다른 글
엘라스틱 서치란? (Elasticsearch) (0) | 2022.06.17 |
---|---|
프록시 서버란? (Proxy Server) (0) | 2022.06.17 |
레디스란? (Redis) (0) | 2022.06.17 |
람다(Lambda)란? (0) | 2022.06.17 |
보일러플레이트(Boiler Plate)란? (0) | 2022.06.17 |