영상 후기 - 아파치, NginX, 톰캣이 뭔가요? (+ 웹서버, WAS, 로드밸런싱, 프록시)

parkkhee·2023년 3월 25일
0

  • 웹 서버의 대표적인 제품 아파치, NginX
  • 서버 == 컴퓨터(하드웨어) 역할의 개념. 서비스를 제공하는 것.
  • 자바랑 JSP로 만든 웹 또는 API 어플리케이션을 실행할때, 이 톰캣 같은 Web Apllication Server가 사용된다.
  • 스프링으로 코딩한 웹앱을 war 파일로 빌드하면 .class 파일들이랑, Jsp, 이미지, css, js 파일들이 압축돼있다. 톰캣이 이 war 파일을 이용해서 웹으로. -> 스프링 서비스가 톰캣을 사용해서 돌게 되는 것이다. 요즘은 반대로 스프링을 톰캣이 들어있는 jar 파일로 빌드해서 배포.
  • 아파치, NginX가 웹서버, 톰캣을 WAS (웹 어플리케이션 서버
  • WAS는 자바에서 쓰이는 용어.
  • 웹서버가 하는 기본적인 일 -> 정적 또는 가벼운 동적 리소스를 제공하는 역할.
  • reverse proxy: 손님들에게서 서버의 정보를 감추는 것.
  • 웹 서버는 여러 다양한 보안 기능들도 제공. -> 앞단에 웹 서버를 둔다.
  • 로드밸런싱: 톰캣, 여러 WAS들이 동시에 돌때 밸런스를 맞춰주는 것. 분산해서 주문을 받는 역할도 한다.
  • 하나의 서버에 여러 개의 WAS를 돌리는 데 이유중 하나는 서버 업뎃이 필요할때 하나가 재부팅되는 동안 웹 서버가 다른 톰캣들로 주문들을 분산. 사용자 입장에서 서비스 안 끊기도록!
  • 또 성능도 상승!
  • 웹 서버의 또 다른 중요 기능중 캐싱이 있다. reverse proxy의 캐시 -> 서버가 미리 사용자에게 제공하기 위해 캐시에 데이터를 모아둔다.
  • 뒷단 WAS들이 정상 작동하는지 주기적으로 헬스체크도 한다.
  • 웹 서버와 웹 어플리케이션 서버는 겹치는 부분도 있다.
  • 약간 웹 서버는 보안이나, 운영을! WAS는 동적 요소들을 만들어내는데 집중 할 수 있다.
  • 아파치가 먼저 등장 NginX가 점유율 따라가는 추세. -> 작동 방식에 차이가 있다.
  • 아파치는 다중 프로세스로 NginX는 이벤트로 일을 처리!
    아파치는 손님이 올때마다 프로세스를 생성해서 처리. 그 프로세스안에 스레드 만들고!
    NginX는 event driven 방식을 사용. 데스크 하나두고 순차적으로 손님 받으면서 일 처리.(손님이 오는대로 업무별로 집중해서 일을 처리)
  • 지금은 아파치도 이벤트 기능을 추가했다.
  • 성능과 가벼움을 중요시하는 서비스에서는 NginX
  • 다양하고 검증된 기능들을 필요로 하는 곳에서는 아파치
profile
순우리말 백엔드 개발자

0개의 댓글