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

박철현·2023년 3월 18일
0

영상후기

목록 보기
36/160

movie

  • 웹서버 : 소프트웨어 개념 중 웹사이트를 제공하는 서버

  • 기본 역할 : 서버 컴퓨터에 저장된 파일(HTML, CSS, JavaScript, 미디어파일 등)을 특정 폴더에 저장하고, 이 폴더를 외부에서 접근 가능하도록 개방해서 서버에 지정된 웹사이트 주소로 접속하면 파일들을 받아갈 수 있도록 함(정적웹)

  • 동적웹 제공

    • 웹서버 고유 역할이라 하긴 애매 → 아파치나 NginX 모듈 가능
    • 아파치, PHP, MySqL 연동하여 동적 PHP 웹사이트 제공 방식(APM)
      • 아파치에 PHP 해석할 수 있는 모듈 세팅 + 접근이 있을 때마다 PHP 코드에 적힌 레시피 + MySQL 식재료를 가져와 아파치가 요리
      • NginX도 가능
  • 아파치, NginX, IIS(윈도우) 가 대표적 웹서버

  • 톰캣 : 요즘 스프링 부트에 내장

    • 자바랑 JSP로 만든 웹 또는 API 어플레케이션을 실행할 때 톰캣같은 웹 어플리케이션 서버 사용(WAS 또는 와스라 함)
    • Web 과 Server 사이라 WAS (뭔가 프로그래밍된걸 더 한다)
    • 동적 사이트를 전문적으로 처리해주는 것
      • 아파치나 NginX같은 웹서버도 PHP 가능하지만, 스프링으로 넘어가면 톰캣 같은 전문 요리사 (WAS)의 손을 빌려야 함
      • 자바 바이트코드로 컴파일되는 언어들에 쓰이는 걸로 톰캣, Jetty, Undertow 등이 있음
  • 톰캣 사용법 : 스프링 코딩한 웹앱을 war 파일로 빌드하면 그 안에 .class, jsp, 이미지, CSS, 자바스크립트 파일 등이 압축

    • 톰캣 다운시 여러 폴더와 파일들이 들어있는 하나의 폴더, 그 중 특정 폴더에 war 파일을 넣고 명령어를 실행하면 스프링 서비스가 톰캣을 사용해서 돌게 되는것
    • 요즘은 반대로 스프링을 톰캣이 들어있는 jar 파일로 빌드해서 배포
  • 아파치, NginX가 웹서버, 톰캣은 WAS

    • 웹서버가 사용자 응대
    • WAS 등 전문 요리사가 뒤에서 요리

  • proxy : 대신 해준

    • forward proxy : 서버에 접속하는 사람들의 정보를 감추기
    • reverse proxy : 손님들에게서 서버의 정보 감추기
      • 서버 내부적으로 파일이 어디있는지, 서비스가 몇번 포트로 돌고 있는지 등 감추기
  • 로드 밸런싱 : 손님들이 여럿 몰릴때 분산해서 넣어주기

  • 같은 사이트 돌리는 톰캣 여러개 이유

    • 지속성을 위함 : 사용자가 서비스를 끊김 없이 이용할 수 있도록(동적 업데이트 시 잠시 종료 후 다시 구동해야하는 문제)
    • 성능측면에서 나아질 수도 있음
  • 아파치 : 다중 프로세스로 일 처리

    • MPM : 멀티 프로세스 모듈 방식
      • 손님이 올 때마다 프로세스 새로 생성(mpm_prefer)
        • 손님마다 테이블 주고 돌아다니면서 응대
      • 한 프로세스 안에서 스레드 새로 생성(npm_worker)
        • 긴 테이블 하나에 손님들 앉히고 돌아다니면서 응대
    • 컴퓨터 자원을 많이 소비함
    • 보완하기 위해 이벤트 방식 추가하기도 함
  • NginX : 이벤트로 일 처리 / 다양, 검증된 기능

    • 작은 데스크 하나만 두고 손님들 한줄로 쭉 세우기
    • 다음 손님이 오는대로 업무별 집중해서 일 처리

  • 성능과 가벼움을 중요시하는 서비스 NginX
  • 다양하고 검증된 기능을 필요한 서비스 아파치
    • 오랜 기간 사용되며 안정성을 갖춰옴
profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글

관련 채용 정보