[Nginx] Nginx 란 무엇인가 ?

nooyji·2022년 7월 4일
0

웹서버와 WAS

결론적으로 Nginx 는 웹서버 (Web Server) 이고, 또 다른 웹서버로는 그 유명한 Apache 도 있다. 웹서버는 클라이언트가 (웹사이트에서) 무언가 요청하면 그에 대한 적절한 반응을 해주는 존재. 이런 웹서버와 항상 같이 등장하는 개념이 WAS (Web Application Server) 이다. 웹서버와 WAS 는 비슷해 보이지만 약간의 차이가 있다.

웹서버는 단순히 정적 파일 (static file) 을 응답하는 존재라면, WAS 는 동적 사이트를 전문적으로 처리하는 존재이다. 정적 파일은 말 그대로 멈춰있는 파일, 즉 이미지, html, css 등 변하지 않는 파일 그 자체를 가리키는 것이다. 반면, 동적인 처리는 클라이언트가 아이디, 패스워드를 넘겼을 때 하는 로그인 처리 또는 클라이언트 쿼리 파라미터에 따라 달라지는 DB 값 표시 등을 말한다.

웹서버를 별도로 운영하는 이유

웹서버를 별도로 운영하는 이유는 WAS 의 부담을 줄여주기 위함이다. 생각해보면 이미지, html, css 등 웹사이트 운영을 함에 있어서 기본적으로 변하지 않는 파일들은 굳이 동적인 처리를 하는 WAS 에서 담당할 필요가 없다. 다시 말해 클라이언트의 요청 중 웹서버가 처리할 수 있다면 WAS 까지 굳이 전달하지 않으면서 WAS 의 업무 비중을 줄여주는 것.

많은 웹서버 중에서도 Nginx 를 사용하는 이유

  1. 빠른 속도
  • 동시 요청 (concurrent connections) 이 많아도 메모리 사용량이 현저히 적음
  • 초당 처리 요청 역시 많음
  1. 리버스 프록시 (Reverse proxy) 로 사용 가능
  • 리버스 프록시란 인터넷과 백엔드 사이에 있는 서버를 가리킴 (포워드 프록시는 클라이언트와 인터넷 사이)
  • 여러 WAS 가 존재하면 클라이언트 요청을 분산시키는 역할 수행 -> 로드 밸런싱 (load balancing)
  • 캐싱 가능 (WAS 까지 요청하지 않아도 클라이언트 요청에 빠르게 응답)
  • 민감한 WAS 정보 (기기 id, MAC 주소 등) 를 숨기는 보안 역할 수행
  1. SSL 지원
  • HTTPS 의 인증서 제공
  1. 웹페이지 접근 인증
  • 로그인 정보 (관리자, 사용자) 를 WAS 에서 하지 않고 Nginx 에서도 가능
  1. 압축
  • gzip 을 사용하면 클라이언트가 보낸 텍스트 파일을 압축
  1. 비동기 처리
  • Event loop 기반으로 상당히 많은 트래픽을 동시에 처리 가능

원문 : https://moondol-ai.tistory.com/467

0개의 댓글