Nginx로 Drupal 성능 개선에 집중해야 하는 이유

게시 됨: 2018-01-14

우리 모두는 Drupal이 유연성과 단순성이 만나는 곳이라는 것을 알고 있습니다. 비기술적인 사용자를 위한 완벽한 솔루션으로 설계된 CMS Drupal은 콘텐츠 관리 시스템과 콘텐츠 관리 프레임워크의 강점을 갖기 위해 노력하는 통합 시스템입니다. 따라서 사이트 빌더가 무엇을 만들려고 하는지(뉴스 사이트 또는 온라인 상점에서 소셜 네트워크 또는 매우 복잡한 정부 웹사이트에 이르기까지)와 상관없이 완벽한 Drupal 개발을 위해 올바른 모듈을 결합하기만 하면 됩니다. Nginx는 캐시, 로드 밸런싱, 리버스 프록시 등 웹사이트의 성능을 향상시키는 데 사용할 수 있는 매우 강력한 웹 서버로 알려져 있습니다. Drupal Nginx 조합은 성능을 극대화할 수 있습니다. 다음 Drupal 프로젝트에 Nginx를 선택해야 하는 이유를 살펴보겠습니다.

Drupal은 지속적으로 업데이트되고 있으며 최신 버전은 이 오픈 소스 CMS가 가장 인기 있는 프레임워크 중 하나로 빠르게 발전한 방법을 보여줍니다(Drupal.org의 보고서에 따르면 거의 100만 웹사이트에서 Drupal 7을 사용합니다) Drupal-Drupal 8의 버전은 가장 흥미로운 기능 중 일부를 사용하여 사용자를 좌석 가장자리에 배치했습니다.

Drupal 8의 이러한 기능 중 일부는 다음과 같습니다.

  • 즉시 사용 가능한 웹 서비스: 웹 사이트가 데스크톱 전용이고 웹 서비스가 다른 시스템의 서비스를 사용하는 웹 사이트에만 사용되던 시대는 지났습니다. 그림에 다양한 장치가 있는 현재 세계에서 웹 서비스는 그 어느 때보다 중요합니다. 웹 서비스는 Drupal 7의 타사 모듈에서 지원되지만 Drupal 8 코어에 포함되었습니다.
  • 보안 개선: 보안은 항상 관심사였으며 새로운 기능이 추가되면서 Drupal 8은 시스템을 더 안전하게 만드는 방법을 만들었습니다.
  • 더 쉽고 빠르게: Drupal 8에서는 Drupal API가 완전히 RESTful되어 개발자가 Angular.js, Ember.js 및 기타 여러 디스플레이 도구를 번거로움 없이 더 쉽게 사용할 수 있습니다.
  • 모바일 개선: 앞서 이야기한 것처럼 모바일 장치는 오늘날의 세상을 움직이는 원동력입니다. Drupal 8은 모바일 장치에서 손쉬운 백엔드 관리와 함께 모바일 사이트 템플릿을 완벽하게 지원합니다.

이러한 기능의 대부분은 트래픽이 많이 발생하고 성능 문제에 취약한 가장 크고 복잡한 사이트를 지원하므로 트래픽 증가의 원동력이 클라이언트에만 국한되지 않으므로 가능한 한 빨리 이러한 문제를 처리하는 것이 중요합니다. 및 서버뿐만 아니라 백엔드 서버 간에도 포함됩니다. Drupal 8 웹사이트에 Nginx를 구현하면 모든 서버 관련 문제를 해결하고 사이트 성능을 높일 수 있습니다.

Drupal Nginx를 사용한 사이트 아키텍처

광범위한 Drupal 웹사이트는 초기에 Apache HTTP 서버를 웹 서버로 사용하며 구성 지침이 널리 사용 가능하기 때문에 많은 웹사이트 소유자가 Apache HTTP 서버를 가장 먼저 선택합니다. 그러나 웹 사이트가 성장하고 더 많은 트래픽이 발생하기 시작하면 사람들이 NGINX 서버로 이동합니다. 이 단계에서 전체 서버에 10,000개 이상의 연결을 동시에 지원하는 데 어려움이 있어 Drupal과 Apache는 극복하기 어려운 문제를 공유합니다.

사이트의 취약성이 위험에 처한 상황에서 Drupal 8 NGINX는 사이트 아키텍처를 안정화하기 위해 조직에서 선호하는 선택입니다. 서버를 변경하고 문제를 일으키는 대신 사이트가 성장함에 따라 이러한 성능 관련 문제를 해결하기 위해 여러 단계를 수행할 수 있습니다.

  • Drupal 사이트의 웹 서버를 위한 첫 번째 선택인 NGINX는 성능을 향상시키고 메모리 사용률을 크게 줄입니다.
  • NGINX는 인터넷 트래픽을 처리하고 애플리케이션 서버의 부담을 줄일 수 있으므로 여러 Drupal 사이트에서 가장 널리 사용되는 역방향 프록시 서버 중 하나입니다.

웹 서버

Drupal 웹 사이트의 성능, 보안 및 유연성을 관리할 수 있는 빠른 수정은 사이트의 웹 서버로 Apache에서 NGINX로 이동하는 것입니다. 대부분의 웹 서버를 괴롭히는 일반적인 문제는 C10K 문제입니다. 웹 서버가 동시 연결(보통 한 번에 10,000개 이하의 연결)을 지원하는 데 어려움이 있습니다. NGINX는 이 특정 문제를 해결하기 위해 설계되었습니다. Drupal NGINX는 요청자에게 리소스를 할당하지 않고 발생하는 요청을 처리하는 지속적인 이벤트 루프를 실행하는 기능을 통해 각각의 새 연결에 대해 새 프로세스를 분기하는 프로세스에서 발생하는 오버헤드를 제거합니다.

Drupal 8 Nginx가 있는 리버스 프록시 서버

역방향 프록시 서버는 일반적인 서버와 다릅니다. 이 서버는 브라우저에서 요청을 수신하고 즉시 처리하는 대신 각 요청을 검사하고 수행할 작업을 결정합니다. 요청을 자체적으로 수행하거나 이행을 위해 다른 서버로 보낼 것입니다.

이러한 서버를 배포하는 것은 유연성, 중복성, 향상된 보안 및 기타 좋은 것들로 가득 찬 바구니를 허용하는 사이트 아키텍처를 만드는 첫 번째 단계입니다. 리버스 프록시 서버가 웹 사이트의 성능에 도움이 되는 주된 이유 중 하나는 웹 서버 간의 통신이 인터넷을 통한 통신보다 빠르기 때문입니다. 그리고 역 프록시 서비스에서 다른 웹 서버와의 이러한 통신은 기본적으로 무료입니다.

따라서 역방향 프록시 서버를 추가하면 Drupal 사이트에서 전체 인터넷 트래픽을 직접 처리할 필요가 없습니다. 이 서버는 엄청난 트래픽, 보안 문제 및 성능 문제로 인해 무너지고 있는 사이트를 즉시 처리합니다. 사이트 아키텍처에 새로운 유연성이 도입되면서 리버스 프록시 서버는 애플리케이션 서버에 영향을 주지 않고 효율적으로 실행할 수 있는 새로운 기능을 허용합니다.

다중 애플리케이션 서버 및 로드 밸런싱

단일 애플리케이션 서버로 더 나은 성능을 얻는 것은 매우 불가능합니다. 그러나 더 크고 더 빠른 서버는 잠재적으로 비용이 많이 들고 단일 장치에는 항상 고유한 성능이 있기 때문에 더 나은 성능을 위해 현재 장치를 업그레이드하거나 교체해야 합니다(매우 파괴적인 작업). 여기서 역방향 프록시 서버가 등장합니다. 이 서버는 시스템에 추가 서버를 추가함으로써 더 나은 Drupal 성능을 보장하는 여러 애플리케이션 서버의 사용을 허용합니다. 서버를 추가하고 제거하는 이 프로세스는 NGINX Plus와 같은 올바른 소프트웨어 도구를 사용하여 쉽게 수행할 수 있어 가동 중지 시간을 크게 줄일 수 있습니다.

여러 애플리케이션 서버가 있다는 것은 다음 요청을 받을 서버를 결정하는 기술이 있어야 한다는 것을 의미합니다. 기술은 간단한 접근 방식에서 시스템에서 각 서버를 검사하여 요청을 보내기 전에 가장 사용량이 적은 서버를 찾는 복잡한 접근 방식에 이르기까지 다양합니다. 이것을 로드 밸런싱이라고 합니다. NGINX 서버 및 NGINX Plus는 Drupal 성능 향상에 도움이 되는 5가지 로드 밸런싱 기술을 지원합니다.

Nginx에서 권장하는 이 공식 Drupal 8 Nginx 구성 파일을 확인하여 Drupal 8 웹사이트에서 구현을 시작하십시오.