반응형


    웹서버와 WAS의 관계 이해하기



    이번 시간은 조금 더 웹 서버에서 동적인 컨텐츠 제공을 위한 준비 과정에 대해서 다뤄보겠습니다. 기본적으로 웹서버의 역할을 생각하면 더 이상 할 수 없었던 기능들을 사용하도록 하기위해서는 약간의 지식이 필요합니다.


    일반적인 웹서버에서 제공을 할 수 없는 동적인 페이지를 불러올 수 있도록 하는 것이 바로 WAS 입니다. 이번시간에는 시간을 들여서 웹서버와 WAS의 차이점을 짚고 가도록 할 생각입니다. 미디어 재생이나 영화표 예매와 같이 빠른 처리와 화려한 디자인을 가지고 있는 서버들은 거의 대부분이 WAS서버이며, 과연 이것들이 어떻게 구성이 되는지 확인해 봅시다.


    먼저, 웹서버와 WAS의 차이를 정확히 짚고 가봅시다.




    웹서버 (Web Server)



    인터넷 연결을 통해서 다른 컴퓨터에 접속할 수 있는데 그 접속할 수 있는 컴퓨터를 "서버"라고 부르고 연결을 가능하게끔 하는 소프트웨어를 웹서버라고 합니다. (물론 위에 하드웨어적인 서버의 의미 안에는 웹서버도 포함되어 있습니다.)


    웹서버

    웹 서버(Web Server)는 HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말한다. 웹 서버 소프트웨어를 구동하는 하드웨어도 웹 서버라고 해서 혼동하는 경우가 간혹 있다.

    - 출처 : 위키


    조금 더 구체적으로 설명하자면, 웹서버의 역할은 단순히 html 문서 파일을 웹 상에 게재를 해주는 역할을 합니다. 초창기 웹 서버의 모델은 단순한 htm 파일 로드에 지나지 않았으나, 현재는 PHP나 ASP 등등의 약간의 동적인 어플리케이션을 실행가능합니다.

    일반적으로 정적인 컨텐츠인 문서나 그림과 같은 화면을 보여주는 역할을 하는 것이 바로 웹서버입니다. 그 연결 구조를 살펴보면 다음 그림과 같습니다.




    그래도 현재에는 단순한 문서뿐 아니라 약간의 애니메이션이나 좀 더 복잡한 기능들을 다양한 언어를 통해서 구현할 수 있게 되었습니다. 그 중 많이 사용하는 것이 바로 PHP입니다.


    대표적인 웹 서버로는 아파치, IIS, NginX 등이 있습니다.




    컨테이너 (Container Format)


    요즘에 컨테이너란 표현을 자주 쓰는데 한마디로 표현하자면 "파일 확장자"입니다.

    이 파일 확장자를 컨테이너라고 부르며, 웹 상에서는 JSP나 Servlet 등이 있습니다. 이런 컨테이너들을 구동시키는 이유는 좀 더 복잡하거나 화려한 구성을 사용할 때 이용됩니다.



    음악 스트리밍 서버로 유명한 서브 소닉이나, 미디어 스트리밍으로 유명한 PLEX가 바로 이런 Servlet을 이용하여 서버를 구동합니다. 다만, 이 컨테이너들은 웹서버의 기능을 하지 못하기 때문에 서버 컴퓨터의 내부에 설치하고 웹서버와 연동해야지만 웹 상에서 사용이 가능합니다.

    즉 단독으로는 사용하지 못합니다.




    WAS (Web Application Server)


    웹서버는 정적인 문서만 불러올 수 있고, JSP 또는 Servlet 컨테이너들은 웹 상에서 사용이 불가능 합니다. 그래서 두 두가지를 연결하는 것이 바로 WAS 입니다.


    한마디로 웹 서버에서 동적인 웹페이지를 불러올 수 있게끔하는 서버라고 보시면 됩니다.


    WAS (Web Application Server)

    웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)이다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다. 한국에서는 일반적으로 "WAS" 또는 "WAS S/W"로 통칭하고 있으며 공공기관에서는 "웹 응용 서버"로 사용되고, 영어권에서는 "Application Server" (약자 AS)로 불린다.


    웹 애플리케이션 서버는 대부분이 자바 기반으로 주로 Java EE 표준을 수용하고 있으나, 자바 기반이지만 Java EE 표준을 따르지 않는 제품과 .NET이나 Citrix 기반인 비Java 계열도 존재한다.

    - 출처 : 위키


    사용자가 동적인 페이지를 요청을 하게 되면 다음과 같은 과정으로 역할을 수행하게 됩니다.




    사용자가 웹서버에 요청하면 서버는 다시 WAS에 요청을해서 동적인 페이지를 받아옵니다. 그 뒤 웹서버가 그 동적인 페이지를 사용자에게 보여주는 과정으로 진행이 됩니다.


    웹서버와 연동을 하여 이 모든 과정이 매끄럽게 진행이 되도록 합니다. WAS에서는 정적인 컨턴츠도 처리할 수 있으나, 효율적인 면에서 살펴본다면 상대적으로 적은 리소스를 차지하는 웹서버가 담당하는 것이 이득입니다. 그래서 일반적으로 WAS는 동적인 컨텐츠만 담당하고 있고 정적인 컨텐츠는 웹서버가 처리를 하면 훨씬 안정적인 서버구축이 가능합니다. 그렇기때문에 웹서버와 WAS를 연동하여 많이 사용합니다.


    일반적으로 WAS는 Tomcat, JBoss, Jetty 등이 있습니다. 이 중에 Tomcat이 유명한데 Tomcat을 WAS가 아니다라고 하는 분들도 계십니다. 그 이유는 Tomcat이 EJB Container를 포함하지 않고 있기 때문이라고 합니다. 


    웹서버 중에서 Apache나 NginX의 경우에는 이런 WAS와 연동하는 것이 비교적 쉬운편이나 IIS는 연동을 하기위해서는 설정이 조금 필요합니다. 하지만 웹 플랫폼 설치관리자를 통해 쉽게 설정할 수 있는 방법이 있으니 다음번 포스팅에서는 웹서버 IIS에서 이런 WAS를 연동하는 법에 대해서 다루도록 하겠습니다.




    반응형
    Posted by clamp2x