1. 웹서버 - 클라이언트의 요청에 의해 정적 파일을 제공하는 서버. Apache, NginX, IIS등의 종류가 있으며, 정적파일만 제공할 수 있다.
2. WAS(Web Application Server) - 웹 서버와 웹 컨테이너를 포함한 개념. 웹 서버에서는 정적 파일만 제공하므로, 동적으로 DB와 연결하여 여러 데이터를 활용해 Php, Jsp, Asp로 표현된 페이지를 해석할 수 있어야 하는데 이 역할을 웹 컨테이너가 제공한다.
왜 웹 서버와 WAS를 분리했을까?
- 두개를 분리하면 웹 서버를 한번 거치기에 보안상의 이점 존재. 또한 웹 서버에서 고장난 WAS로 보내지 않고, 그 시간동안 이를 복구시킨다면 사용자는 끊김없이 서버에서 서비스를 제공받을 수 있다. (=fail over, fail back). 톰캣에서는 웹서버와 WAS의 역할을 모두 하기도 한다.
Node.js는 Apache, 톰캣과 같은 개념과 무엇이 다른가?
Node.js 는 정적 파일 제공과 WAS기능(=언어 해석) 모두 담당한다. Express.js를 통해 정적 파일을 제공하고 나머지가 언어해석, DB연결등을 담당하는 큰 그림으로 볼 수 있지만 나누는 것이 크게의미가 있나 싶다. 그렇다고 Node.js를 사용하면 NginX와 같은 웹 서버를 사용하지 않는 것은 아니다. 기업에서는 NginX나 Apache등의 그동안 쌓인 기술들을 활용하여 이를 리버스 프록시 서버로 활용하여 보안상의 이점과 캐싱등을 통해 속도상의 이점을 갖는다.
'Developer > Web' 카테고리의 다른 글
Node.js + js 를 쓰면서 불편했던 점, Nestjs+Typescript의 이점 (0) | 2022.02.06 |
---|---|
GraphQL은 REST API와 무엇이 다를까? (Node.js + Apollo 예시) (0) | 2021.02.07 |
What is Kafka?? (0) | 2021.02.01 |
CI? CD? Cloud Native? DevOps? 헷갈리는 용어 정리하기 (0) | 2021.01.27 |