"애플리케이션 서버 대 웹 서버"가 의미하는 대조에도 불구하고 인터넷에서는 두 가지 유형의 서버가 일반적으로 공통된 목적, 즉 웹사이트 콘텐츠에 대한 사용자 요청을 충족하기 위해 함께 배포됩니다. 웹 서버와 애플리케이션 서버의 속성을 정의하는 표준 문서는 없지만 용어가 일반적으로 어떻게 이해되는지 살펴보겠습니다.
웹 서버 의 기본적인 역할은 클라이언트로부터 웹사이트의 정적 콘텐츠(HTML 페이지, 파일, 이미지, 비디오 등)에 대한 요청을 수락하고 이행하는 것입니다. 클라이언트는 거의 항상 브라우저나 모바일 애플리케이션이며, 요청은 웹 서버의 응답과 마찬가지로 HTTP (Hypertext Transfer Protocol) 메시지 형식을 취합니다.
애플리케이션 서버의 기본적인 역할은 클라이언트에게 일반적으로 비즈니스 로직이라고 불리는 것에 대한 액세스를 제공하는 것입니다. 비즈니스 로직은 동적 콘텐츠를 생성합니다. 즉, 비즈니스, 서비스 또는 애플리케이션에서 제공하는 특수 기능을 제공하기 위해 데이터를 변환하는 코드입니다. 애플리케이션 서버의 클라이언트는 종종 애플리케이션 그 자체이며, 웹 서버와 다른 애플리케이션 서버를 포함할 수 있습니다. 애플리케이션 서버와 클라이언트 간의 통신은 HTTP 메시지 형태를 취할 수 있지만, 웹 서버와 클라이언트 간의 통신에는 반드시 필요한 것이므로 반드시 필요한 것은 아닙니다. CGI 변형을 포함하여 다른 많은 프로토콜도 널리 사용됩니다.
일반적인 배포에서는 정적 콘텐츠와 동적으로 생성된 콘텐츠를 모두 제공하는 웹사이트는 정적 콘텐츠를 위한 웹 서버와 동적으로 콘텐츠를 생성하는 애플리케이션 서버를 실행합니다. 역방향 프록시 와 부하 분산 장치는 하나 이상의 웹 서버와 하나 이상의 웹 애플리케이션 서버 앞에 위치하여 트래픽을 적절한 서버로 라우팅합니다. 이는 먼저 요청된 콘텐츠 유형에 따라 라우팅되고, 그다음에는 구성된 부하 분산 알고리즘에 따라 라우팅됩니다. 대부분의 로드 밸런서 프로그램은 역방향 프록시 서버이기도 하며, 이를 통해 웹 애플리케이션 서버 아키텍처가 단순화됩니다.
왜 무언가가 애플리케이션 서버인지, 웹 서버인지가 문제가 되는 걸까요? 이는 주로 웹사이트에 대한 요구가 증가함에 따라 두 가지 유형의 서버의 설계와 사용이 점점 더 겹치는 방식 때문입니다. 많은 인기 있는 애플리케이션은 웹 서버와 애플리케이션 서버 역할을 모두 수행합니다(Apache HTTP Server, Express, Hapi, Koa를 생각해 보세요).
또 다른 중복은 일부 웹 애플리케이션 서버가 통신 프로토콜로 HTTP를 사용한다는 것입니다. 마찬가지로, 일부 웹 서버는 PHP와 같은 인기 있는 언어를 기본적으로 지원하는 내장 모듈과 기능을 갖추고 있거나 HTTP의 요청을 프록시하고 애플리케이션에서 사용하는 프로토콜(예: FastCGI)로 변환하기 때문에 애플리케이션 서버처럼 보이기도 합니다.
NGINX Plus 와 NGINX는 Dropbox, Netflix, Zynga 등 트래픽이 많은 웹사이트에서 사용하는 동급 최고의 로드 밸런싱 솔루션입니다. 전 세계적으로 3억 5천만 개가 넘는 웹사이트가 NGINX Plus와 NGINX 오픈 소스를 통해 콘텐츠를 빠르고 안정적이며 안전하게 전송합니다.
NGINX Plus는 FastCGI 및 SCGI를 포함한 여러 유형의 애플리케이션 서버에 대한 변환 모듈과 함께 웹 및 애플리케이션 서버 앞에 배포될 때 매우 효율적인 역방향 프록시 및 로드 밸런서입니다. NGINX Plus는 웹 서빙 , 고급 로드 밸런싱 , 캐싱 , 관리 및 모니터링 , 요청 라우팅을 포함한 여러 기능을 모두 유연하고 비용 효율적인 솔루션으로 결합하여 빠르고 안정적인 방식으로 정적 및 동적 콘텐츠를 제공하여 고객 만족도와 수익을 높입니다. 오늘날의 고성능 웹사이트에 필수적인 완벽한 애플리케이션 제공 플랫폼입니다.