서버의 내부 동작 방법

아파치(Apache) 개요

www.apache.org/

 

Welcome to The Apache Software Foundation!

Reports Official ASF reports and statements, including Quarterly and Annual Reports, Vision Statement, "Apache is Open", 5-Year Strategic Plan, and more.

www.apache.org

  • 오픈 소스 라이선스에 따라 배포되어 마음대로 쓸 수 있는 HTTP 웹 서버
  • 웹 서버 : 80번 포트로 클라이언트의 요청(POST,GET,DELETE)을 기다리고 요청에 대한 데이터를 만들어서 응답하는 역할. 이때 데이터는 정적인 데이터(html, css, 이미지등)로 한정 된다.
  • 스레드/프로세스 기반 구조

톰캣(Tomcat) 개요

tomcat.apache.org/

 

Apache Tomcat® - Welcome!

The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. The Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket specifications ar

tomcat.apache.org

  • **dynamic(동적)**인 웹을 만들기 위한 웹 컨테이너, 서블릿 컨테이너라고 불리며, 웹서버에서 정적으로 처리해야할 데이터를 제외한 JSP, ASP, PHP 등은 웹 컨테이너(톰캣)에게 전달한다.
  • WAS(Web Application Server)
    • 컨테이너, 웹 컨테이너, 서블릿 컨테이너라고 부름
    • JSP,서블릿처리,HTTP요청 수신 및 응답
    • 아파치만 쓰면 정적인 웹페이지만 처리하므로 처리속도가 매우 빠르고 안정적이다.

하지만 톰캣(WAS)를 쓰면 동적인 데이터 처리가 가능하다. DB연결,데이터 조작, 다른 응용프로그램과 상호 작용이 가능하다. 톰캣은 8080포트로 처리한다

아파치 톰캣(Apache+Tomcat) 개요

  • 톰캣이 아파치의 기능 일부를 가져와서 제공해주는 형태이기 때문에 같이 합쳐서 부른다.

아파치 톰캣의 처리방법

  • 아파치와 톰캣을 같이 쓰면 아파치는 정적인 데이터만 처리하고, JSP 처리는 Web Container(톰캣의 일부)로 보내주어 분산처리 할 수 있다.

엔진엑스(NGINX) 개요

nginx.org/en/

 

nginx

nginx nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev. For a long time, it has been running on many heavily loaded Russian sites including Yandex, Mail.Ru, VK,

nginx.org

  • 차세대 웹서버

더 적은 자원으로 더 빠르게 데이터를 서비스 할 수 있다.

  • 동시접속 처리에 특화 된 웹서버 프로그램이다. 아파치보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화 되어있다.
  • 동시접속자(약 700명) 이상이라면 서버를 증설하거나 Nginx 환경을 권장한다고 한다. 지금은 아파치가 시장 점유율이 압도적(?)이지만, 아마존웹서비스(AWS) 상에서는 시장 점유율 44%에 달할정도로 가볍고, 성능이 좋은 엔진이라고 한다.
  • Nginx는 비동기 처리 방식(Event-Drive) 방식을 채택하고 있다.
    • 동기(Synchronous) : A가 B에게 데이터를 요청했을 때, 이 요청에 따른 응답을 주어야만 A가 다시 작업 처리가 가능 (하나의 요청, 하나의 작업에 충실)
    • 비동기(Asynchronous) : A의 요청을 B가 즉시 주지 않아도, A의 유휴시간으로 또 다른 작업 처리가 가능한 방식

NGINX와 Apache의 관계

  • 아파치는 오픈소스이고, 무료로 사용할 수 있는 소프트웨어이기에 웹을 지탱하고 있다고 할 수 있다 하지만, 아파치는 오래전에 만들어진 소프트웨어이기에 과거의 요구사항과 새로운 요구사항간의 충돌하는 것이 있다.
  • 엔진엑스는 새로운 시대의 요청에 부응해서 만들어진 웹서버이다. 개발의 모든 목적이 높은 성능에 맞춰져있다. 잘 사용하지 않는 기능은 과감하게 제외했다. 덕분에 폭팔적인 증가세에 있는 인터넷 서비스를 지탱하는데 적합하다.

참고 자료 링크

opentutorials.org/module/384/3462

 

NGINX 소개 - NGINX

Web 웹이란 World Wide Web의 약자로 인터넷이라는 네트워크 체계 위에서 동작하는 통신 규약 중의 하나다. 아래의 그림은 인터넷과 웹의 관계를 보여준다. 웹이 인터넷과 같은 의미처럼 사용된 이유

opentutorials.org

whatisthenext.tistory.com/123

 

Nginx 이해하기 및 기본 환경설정 세팅하기

NGINX Nginx의 개요 엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache 보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화��

whatisthenext.tistory.com

 

+ Recent posts