본문 바로가기
☕️자바 𝗝𝗔𝗩𝗔

[Network] Apachi, Nginx, Tomcat 이 하는일이 뭘까? (Apachi와 NginX의 차이점)

by 비타민찌 2022. 12. 11.
728x90

Apachi, NginX.. - 프록시서버(웹서버)

Tomcat, Jetty.. - WAS(Web Application Server)

 

 

톰캣은 자바 서블릿을 serving 해주는 역할

nginx는 보안 + 라우팅 + 정적 웹서버

node.js는 자바스크립트 런타임

 

 

웹서버의 경우 어떤 요청에 대해 http 프로토콜(html)로 응답을 내려준다. 보통의 단순한 정적 웹서버.

WAS의 경우 어떤 요청에 대해서 비즈니스 로직(java코드 + 디비접근 + 보안 등)을 거친 후 http 프로토콜로(html)로 응답을 내려준다.

 

Node.js도 was가 될 수 있다. nginx를 앞단에 두고 뒤에 톰캣이랑 node.js 둘다 둘 수 있음.

 

 

Node.js 는 톰캣과 스프링보다 뒤에 개발되었기 때문에, Tomcat과 Spring의 구조를 보고 올인원으로 관리자가 내장되어 있는 구조로 만들었다. (전체적인 그림에서 수행 하는일로 보자면 Node.js = Tomcat+Spring)

 

 

- Apachi 와 NginX의 차이점은?

Apachi는 멀티 프로세스 모듈(MPM) 방식으로 처리하고, NginX는 이벤트 기반(Event-Driven) 방식으로 처리한다. (Apachi도 이벤트기반 방식을 추가하긴 했음) 따라서 잦은 IO를 처리하는 서비스는 성능과 가벼움이 강점으로 여겨지는 NginX,  안정성이 중요시되는 서비스에는 Apachi를 사용한다.

 

- Proxy

프록시서버(Proxy)는 클라이언트가 자신을 통해 다른네트워크 서비스(Node.js, Spring, WAS)에 간접적으로 접근할 수 있게 하는 컴퓨터 시스템이나 응용프로그램을 일컫는다. 중계자(관리자)로서 로드밸런싱, Reverse Proxy, 캐싱 등의 작업을 수행한다.

 

 

 

참고: https://developer-ping9.tistory.com/245

728x90

댓글