영상후기 - APACHE, NGINX, TOMCAT

shin·2023년 4월 13일
0

영상후기

목록 보기
14/20

movie

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

  • server: 서비스를 제공하는 쪽

  • client: 서비스를 제공받는 쪽

  • web server: 어떤 컴퓨터로 하여금 서버 역할을 하도록 도와주는 소프트웨어. 대표적으로 Apache, NGINX, IIS(windows 용)

  • 웹서버란, 웹 사이트를 제공하는 서버(로 만들어주는 소프트웨어)

  • 클라이언트가 서버에 지정된 url을 요청하면, 서버 컴퓨터의 외부에서 접속 가능하도록 개방해놓은 특정 디렉토리를 통해 파일을 클라이언트에게 제공하도록 하는 것이 웹서버의 역할

  • 동적인 웹사이트 제공하는 방법(apache). APM(apache+php+mysql)
    => 아파치에 php를 해석할 수 있는 모듈을 설치하여, mysql의 데이터를 가져와 php에 정의된 방식을 해석하여 동적 웹사이트를 제공

  • nginx로도 위와 유사한 방법으로 동적인 웹사이트를 제공할 수 있다.

  • tomcat: web application server(와스 WAS)로, java와 jsp로 만든 웹 혹은 api application을 실행할 때 사용. 동적 사이트를 전문적으로 처리

  • apache, nginx 는 php와 같은 가벼운 동적 리소스는 모듈을 통해 해석할 수 있지만, 스프링 같은 복잡한 프레임워크의 경우는 tomcat 같은 WAS가 필요하다.

  • WAS에는 대표적으로 tomcat, jetty, undertow

  • apache 없이 tomcat 만으로도 웹사이트 제공이 가능. 클라이언트에게 동적 웹사이트를 직접 전달할 수도 있고, 정적 웹사이트를 건내주는 것도 가능하다.

  • 하지만 그런 방식으로는 잘 사용하지 않는다.

  • apache나 nginx를 앞단에 두고 뒷단에서 was가 처리하도록 하는 이유: revers proxy, load balancing

  • forward proxy: 사용자가 웹사이트에 접속할 때, 사용자의 ip를 감추기 위해 중간에 프록시를 통해 서버와 통신하는 방법

  • revers proxy: 사용자에게 서버의 정보를 감춤. 서버 내부적으로 파일이 어디에 있는지, 서비스 포트는 몇 번 포트를 사용하는지 등... 요청이 들어오면 프록시가 알아서 포트를 연결하고 서버의 파일들을 제공

  • load balancing: WAS 소프트웨어들은 단일로 사용하지 않고, 여러 서버를 두는 경우가 많다.
    - 지속성, 웹사이트의 동적 부분 업데이트를 하기 위해 서버를 재시작할 때, 단일 서버는 서버가 재가동 되는 동안에 서비스가 중단된다.
    - 부하분산, 성능적인 측면에서 하나의 서버가 모든 부하를 감당하는 것보다, 여러 서버가 부하를 나눠 받는 게 더 좋다.
    - 캐싱, reverse proxy cache를 말한다. 서버에 자주, 반복적으로 요청될 만한 데이터들을 캐시로 만들어 놓고 요청이 들어오면 바로 응답해준다.
    - WAS health check, 정상작동하는지 점검
    - 외 web server는 서비스를 안정적으로 제공하기 위한 다양한 기능을 제공한다.

  • Apache와 nginx는 근본적으로 작동 방식에 있어 차이가 있다.

  • apache는 다중 프로세스(MPM Multi Process Module) 방식으로 처리, 요청이 올 때마다 한 프로세스로 처리하는 방식(mpm_prefork)과 하나의 프로세스 안에서 스레드를 생성하는 방식이 있다. = 컴퓨터 자원을 많이 소모함

  • nginx는 event-driven 방식으로 처리, 하나의 프로세스를 두고 여러 요청을 동시에 처리하기 때문에 성능이 좋다. apache도 이를 보완하기 위해 event-driven 방식을 도입

  • 두 작동 방식의 차이 때문에 nginx는 성능과 가벼움을 추구하는 애플리케이션에서 사용하고, apache는 다양하고 검증된 기능들을 필요로하는 애플리케이션에서 사용된다.

profile
안녕하세요.

0개의 댓글

관련 채용 정보