Web
웹이란 World Wide Web의 약자로 인터넷이라는 네트워크 체계 위에서 동작하는 통신 규약 중의 하나다. 아래의 그림은 인터넷과 웹의 관계를 보여준다. 웹이 인터넷과 같은 의미처럼 사용된 이유는 웹이 가장 성공한 인터넷 서비스이기 때문이다. 위키피디아 참고
서버와 클라이언트
클라이언트는 정보를 요청하는 쪽이고 서버는 정보를 제공하는 쪽이다. 이것은 상대적인 개념으로 클라이언트를 위한 전용 머신이 따로 있는 것은 아니고, 클라이언트 소프트웨어인 웹브라우저가 설치되어 있다면 클라이언트가 되는 것이고, 서버 소프트웨어인 웹서버가 설치되어 있다면 서버가 되는 것이다.
HTTP
http란 웹서버와 웹클라이언트가 서로 정보를 주고 받기 위한 약속(protocol)이다. 즉 요청은 어떻게 해야하고, 응답은 어떻게 해야하는지에 대한 규칙을 미리 정해둔 것이다. 위키피디아 참고
Web Server
웹서버는 다른 말로 HTTP Server라고도 부른다. 웹브라우저의 카운터 파트너로서 서버 쪽에서 정보를 제공하는 소프트웨어를 의미한다. 대표적인 웹서버는 Apache가 있다. 아래 그림은 웹서버의 시장 점유율을 보여준다. (참고 netcraft.com)
NGINX
NGINX는 차세대 웹서버로 불린다. 위의 그래프를 통해서 알 수 있듯이 Apache의 독주에 제동을 걸고 있다. NGINX의 특징은 한마디로 정의하면 아래와 같다.
더 적은 자원으로 더 빠르게 데이터를 서비스 할 수 있다.
NGINX와 Apache의 관계
Apache는 웹의 산증인이라고 해도 과언이 아니다. 위의 그래프에 따르면 1996년 이래로 한번도 1등의 자리를 놓친적이 없다. 오픈소스이고, 무료로 사용할 수 있는 소프트웨어인 아파치가 웹을 지탱하고 있다고해도 과언이 아니다. 하지만, 아파치는 오래전에 만들어진 소프트웨어다. 아파치가 만들어진 시대의 요구사항이 이제는 유효하지 않은 것도 있고, 새로운 요구사항과 충돌하는 것도 있을 것이다. 그렇다고 과거의 유산을 청산하고 마냥 새로운 시대의 요구사항만 쫏아갈수는 없는 것이다. 자신이 만들어낸 의존성을 안고 서서히 잊혀지는 것이야 말로 인프라의 운명이면서 미덕이 아닐까.
엔진엑스는 새로운 시대의 요청에 부응해서 만들어진 웹서버이다. 개발의 모든 목적이 높은 성능에 맞춰져 있다. 그리고 잘 사용하지 않는 기능은 과감하게 제외했다. 덕분에 폭발적인 증가세에 있는 인터넷 서비스를 지탱하는데 적합하다. 다음은 필자가 찾아본 Apache와 NGINX의 속도 테스트 결과들이다. 직접 읽어보고 또 평가해보자.
참고
- NGINX 홈페이지
- NGINX 한국 커뮤니티 (facebook group)
- NGINX HTTP Server 한국어판 - NGXIN에 대한 전체적인 지식이 담겨있다.
- 엔진엑스로 운영되는 효율적인 웹사이트 - NGXIN에 대한 일종의 쿡북으로 사례중심이다.