web server

홍준섭·2022년 8월 24일

개발 공부

목록 보기
2/20

web server는 무엇인가?

  • 하드웨어적인 측면: 웹 서버 소프트웨어와 웹 사이트의 구성요소 파일(HTML,이미지,css 스타일시트 및 javascript 파일)을 저장하는 컴퓨터. 웹 서버는 인터넷에 연결되어 웹에 연결된 다른 장치와의 물리적 데이터 교환을 지원
  • 소프트웨어적인 측면: 웹 사용자가 호스팅된 파일에 액세스하는 방법을 제어하는 여러 부분. 최소한 HTTP 서버이다. HTTP 서버는 URL과 HTTP를 이해하는 소프트웨어. HTTP서버는 저장하는 웹사이트의 도메인 이름을 통해 액세스할 수 있으며 이러한 호스팅된 웹사이트의 콘텐츠를 최종 사용자의 장치로 전달.

정적 web 서버와 동적 web 서버

  • 정적 web 서버: 컴퓨터와 HTTP 서버로 구성된다. 서버가 호스팅된 파일을 있는 그대로 브라우저에 보내기 때문에 이를 "정적"이라고 한다.
  • 동적 web 서버: 정적 web 서버 + 추가 소프트웨어로 구성. application 서버가 HTTP 서버를 통해 브라우저에 콘텐츠를 보내기 전에 호스팅된 파일을 업데이트 하기 때문에 이를 "동적"이라고 한다. 예를 들어, 브라우저에 표시되는 최종 웹 페이지를 생성하기 위해 애플리케이션 서버는 데이터베이스의 콘텐츠로 HTML템플릿을 채울 수 있다.

호스팅 파일

웹 서버는 웹사이트의 파일, 이미지, css 스타일시트, javascript 파일, 글꼴 및 비디오를 포함한 모든 HTML 문서 및 관련 자산을 저장해야 한다. 기술적으로 모든 파일을 자신의 컴퓨터에 호스팅할 수 있지만 다음과 같은 이유로 전용 웹 서버에 모든 파일을 저장하는 것이 더 편리하다.

  • 전용 웹 서버는 일반적으로 더 많이 사용 가능하다.
  • 다운타임및 시스템 문제를 제외하고 전용 웹 서버는 항상 인터넷에 연결되어 있다.
  • 전용 웹 서버는 항상 동일한 IP주소를 가질 수 있다.
  • 전용 웹 서버는 일반적으로 타사에서 유지 관리

HTTP를 통한 통신

웹 서버는 HTTP를 지원한다.

  • 일반적으로 클라이언트가 요청하면 서버가 응답한다. 서버는 요청되기 전에 서버 푸시라는 메커니즘을 통해 클라이언트 캐시를 데이터로 채울 수도 있다.
  • HTTP를 통해 파일을 요청할 때 클라이언트는 파일의 URL을 제공해야 한다.
  • 웹 서버는 최소한 오류 메시지와 함께 모든 HTTP 요청에 응답해야 한다.

웹서버에서 HTTP 서버는 들어오는 요청을 처리하고 응답합니다.

  • 요청을 받으면 HTTP 서버는 먼저 요청된 URL이 기존 파일과 일치하는지 확인
  • 그렇다면 웹 서버는 파일 내용을 브라우저로 다시 보낸다. 그렇지 않은 경우 application 서버는 필요한 파일을 빌드
  • 두 프로세스 모두 가능하지 않은 경우 웹 서버는 브라우저에 오류 메시지를 반환하며 가장 일반적으로 404 not found를 보내준다.

웹서버 종류

Apache

  1. 오픈소스이다
  2. 다양한 모듈을 제공한다
  3. 강력한 커뮤니티로 방대한 자료가 있다
  4. 확장성이 좋다
  5. 보안 수준이 높다
  6. 많은 기능들로 인해 느린 측면이 있다
  7. 오버헤드가 발생한다.
  8. 아파치는 요청이 들어오면 프로세스를 새로 만들기 때문에 네트워크 소켓 수가 1만개가 넘어가면 하드웨어 성능이 아무리 좋아도 성능이 급격하게 떨어지는 C10K 문제가 발생한다.

Nginx

  1. 오픈소스이다.
  2. Apache에 비해 가볍다
  3. 프록시 기능이 뛰어나다.
  4. 커뮤니티 자료가 부족하다
  5. 확잘 모듈이 Apache에 비해 적다

IIS

  1. microsoft에서 지원한다.
  2. ASP, MSSQL과 같은 다른 Microsoft 서비스와 쉽게 통합할 수 있다
  3. 간편한 GUI 지원
  4. 가격이 비싸다
  5. Windows Server에서만 동작한다
  6. 더디고 느리다

웹서버와 WAS

웹 서버 분리의 장점

  1. 서버 부하 방지: WAS는 기본적으로 동적 컨텐츠 제공을 위해 존재하는 서버이다. 정적 컨텐츠 요청까지 처리하는 경우 부하가 늘어 동적 컨텐츠 처리가 지연되고 수행 속도가 느려진다
  2. 물리적으로 분리하여 보안 강화: 웹 서버와 WAS를 물리적으로 분리하고 그 사이에 방화벽을 두어 보안을 강화한다. SSL를 통해 데이터를 패킷화 하고 암복호화 하여 전달하기 때문에 보안이 강화된다.
  3. 여러 대의 WAS를 연결 가능: 로드 밸런싱을 위해서 웹 서버를 사용한다.
  4. 접근 허용 IP 관리, 2대 이상의 서버에서의 세션 관리 등도 웹 서버를 분리해서 웹 서버를 통해 처리하면 효율적이다.
profile
개발 공부중입니다

0개의 댓글