WebServer 종류

SOO·2021년 12월 10일
1

WebServer 종류

1. Apache HTTP

  • 현재 점유율이 가장 높은 오픈 소스 웹 서버
  • 오랫동안 사용되어 안정적이며 대부분의 OS에서 사용이 가능 (안정성, 확장성, 호환성이 우세)
  • 다양한 연결 및 요청 처리 알고리즘을 선택할 수 있는 유연한 아키텍처와 모듈을 제공
  • 쓰레드와 프로세스 기반 구조
    • 프로세스: 운영체제로부터 자원을 할당받는 작업의 단위
    • 쓰레드 (thread): 프로세스가 할당받은 자원을 이용하는 실행의 단위

1-1. Apache 멀티 프로세스 모듈의 종류

  • prefork 방식
    • Apache 기본 모듈 동작 방식
    • 응답 프로세스를 미리 띄워놓고 클라이언트 요청 시 자식 프로세스가 반응
    • 하나의 자식프로세스가 하나의 쓰레드를 갖는 구조이며, 기본 사용 메모리가 worker 방식보다 높음
    • 프로세스간 메모리를 직접 공유하지 않아 메모리 공간이 독립적이므로 안정적
  • Worker 방식
    • 하나의 자식 프로세스가 여러 개의 쓰레드를 갖는 구조이며, 기본 사용 메모리가 prefork 방식보다 낮음
    • 쓰레드 간 메모리를 서로 공유
      동시접속자가 많은 사이트에 적합

2. Nginx

  • 보안과 속도를 최적화 시키고자 탄생한 웹서버
  • 비동기 이벤트 기반 구조로, 고정된 프로세스만 생성하고 해당 프로세스 내부에서 효율적으로 작업을 처리 (동시접속이 많아도 Process 또는 Thread 생성 비용이 존재하지 않음)
  • 쓰레드를 적게 사용하여 메모리를 적게 사용하고 CPU소모가 적음 (대량 접속에도 적은 리소스를 사용하면서 빠른 서비스 제공이 가능)
  • 규모가 작고 정적 데이터 처리가 많은 서비스에 적합
  • 동적 컨텐츠 처리 불가
  • 모듈개발이 어렵고 모듈이 다양하지 않음

3. WebtoB

  • Multiplexing 처리 방식: 다수의 클라이언트 요청을 하나의 프로세스가 받아 처리
  • 대규모 트랜잭션 처리에 적합하도록 설계되어 처리 속도 지연, 서버 다운 등 웹 시스템상의 문제들을 효과적으로 해결하도록 설계
  • 주로 WAS제품인 제우스(JEUS)와 함께 사용됨
  • HTML, PHP, Servlet 등 각각의 서비스들을 별도의 독립적인 프로세스로 설정, 프로세스의 수를 조정하여 시스템 부하를 줄임 (사용자가 필요로 하는 서비스만으로 프로세스를 구성하여 자원을 효율적으로 사용할 수 있음)
  • 외부 요청에 대해 방화벽 포트 없이 통신이 가능
  • Caching 기능: 사용자가 요구를 보내면 웹투비가 자주 이용되는 리소스들을 선별하여 이를 메모리에 상주시킴

참고 url
웹 서버와 종류 https://0ver-grow.tistory.com/134
WAS와 Web server 특징과 종류 https://soyeondev.tistory.com/147
Apache vs NginX https://webinstory.tistory.com/entry/Apache-vs-Nginx-%EB%B9%84%EA%B5%90
Apache 서버 MPM, Worker, prefork 방식 https://bkjeon1614.tistory.com/23
웹투비 http://wiki.hash.kr/index.php/%EC%9B%B9%ED%88%AC%EB%B9%84

0개의 댓글