❕ 영한님의 강의중 들었던 . WebServer 와 WAS를 나눠야 되는 경우가 기억 났다.
- 웹서버
- 점유율 35.34% ( 그 다음이 apache, 톰캣아님)
- 가벼움과 높은 성능을 목표로 만들어졌다.
- 웹 서버 , 리버스 프록시 , 메일 프록시 의 기능을 가진다
❕ 프록시 ( 대리해주는 역할 )
클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는
컴퓨터 시스템이나 응용 프로그램을 가리킨다.
서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시',
그 중계 기능을 하는 것을 프록시 서버라고 부른다. [위키백과](https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%9C%EB%B2%84)
- 노드는 WAS , WebServer으로 두 종류의 역할을 할 수 있다.
왜 필요한가?
- 정적 파일을 응답하는데 WAS를 사용하면 자원이 낭비된다.
- WAS : 사용자의 요청에 따른 동적인 처리 후 응답하는 형태
- 빠르다
- 메모리 사용 효율이 매우 뛰어나다
- 동시 처리량이 매우 높다.
- 리버스 프록시로 사용 가능 ( 제일 중요!! )
- 인터넷과 백엔드 사이에 있는 프록시 ( 포워드는 사용자와 인터넷 사이 )
- 로드 밸런싱 ( 어디로 가라고 지정해주는 역할 )
- 캐시 서버로 전달할 수 있다.
- DB까지 가 이미지를 가져오는게 아닌
캐시 서버에 캐싱된 이미지를 바로 가져다 줄 수 있다.
- 보안 처리가 가능하다.
- 인터넷에 도달하기전 서버의 정보를 숨길 수 있다.
- SSL : 브라우저의 신뢰도를 증명
- 로그인 정보 검증
- WAS까지 가서 검증하지 않고 Nginx에서 가능
- 압축
- 클라이언트가 보내는 Text를 압축 할 수 있다.
- 비동기 처리 처리 ( 2번째로 중요!!)
- 아파치(톰캣아님)는 불가능하다.
- 이벤트 루프의 방식을 채용하기 때문에 쉽다
Nginx와 node.js 구축시
- 버퍼 오버플로우 : 할당된 메모리를 넘어가면 오버플로우
- 버퍼 오버플로우를 방지 가능
구축 방식
- 사용자가 접속
- HTTP 접속 ⇒ 80 PORT ⇒ Nginx가 433 PORT으로 리다이렉트
- HTTPS 접속 ⇒ 443 PORT
- HTTP / HTTPS 어디로 접속해서 자동으로 HTTPS으로 관리 가능하다.