LiteSpeed Cache에서 ‘ESI(Edge Side Includes)’ 기능은 무엇일까?

LiteSpeed Cache 플러그인에 기능 중에 ESI(Edge Side Includes)는 웹사이트 성능을 극대화할 수 있는 매우 강력한 도구로 일반적인 캐싱이 페이지 전체를 저장하는 반면, ESI(Edge Side Includes)는 페이지의 특정 부분을 개별적으로 캐싱하거나 동적으로 처리할 수 있습니다.

웹 페이지 일부를 개별적으로 캐싱하는 도구이기 때문에 동적인 웹사이트에 적합하며 블로그 같은 정적인 웹사이트에서는 큰 영향이 없습니다. 블로그에 그나마 효과를 볼 수 있는 부분은 댓글이라고 할 수 있습니다.

그래서 저는 처음에 이 기능을 활성화한다면 캐싱 성능을 극대화할 수 있다고 생각했지만 블로그에는 큰 영향이 없다는 것을 보고 기능을 사용하고 있지 않습니다. 하지만 변화(로그인 페이지, 상품 등)가 자주 일어나는 웹사이트라면 ESI 도구를 활성화하는 것이 사이트 속도에 도움이 됩니다.

ESI 사용의 장점

Edge Side Includes

일반적인으로 캐싱은 페이지 전체를 저장하는 반면에, ESI(Edge Side Includes)는 페이지의 특정 ‘부분’을 개별적으로 캐시하거나 동적으로 처리할 수 있도록 합니다.

  • 부분 캐싱 및 홀 펀칭: ESI의 가장 중요한 기능은 공개적으로 캐시된 페이지에 구멍을 뚫고, 그 구멍을 비공개 또는 동적으로 변경되는 콘텐츠로 채울 수 있게 해줍니다.
  • 비공개/동적 콘텐츠: 사용자 로그인 정보, 장바구니 내용, 맞춤형 위젯, 실시간 재고 정보 등 사용자마다 다르거나 자주 업데이트되는 내용은 ESI를 통해 ‘구멍’으로 지정되어 별도로 처리됩니다.
  • 독립적인 캐시 규칙 적용: 페이지 본문은 일주일 동안 캐시되더라도, 실시간 업데이트가 필요한 위젯은 3초마다 캐시가 갱신되도록 설정할 수 있습니다.
  • PHP 백엔드 히트 감소: ESI를 사용하면 LiteSpeed 웹 서버가 PHP 및 데이터베이스에 요청을 보내지 않고도 캐시된 페이지와 동적 ESI 블록을 조합하여 사용자에게 제공할 수 있습니다. 이는 서버 부하를 크게 줄이고 로딩 속도를 엄청나게 향상시킵니다.
  • 로그인 사용자 경험 개선: 로그인한 사용자는 일반적으로 캐시된 페이지를 제공받기 어렵습니다. 하지만 ESI를 통해 개인화된 요소를 제외한 나머지 페이지는 캐시 상태로 제공하면서도, 개인화된 요소는 동적으로 표시될 수 있습니다. 이를 통해 로그인 사용자도 캐시의 이점을 누릴 수 있습니다.

블로그(정적 콘텐츠)에서 ESI를 켤 경우의 단점

  • 설정 복잡도 증가: 위젯별로 캐시 분리 여부를 신경 써야 함
  • 캐시 누락 가능성: 잘못 설정 시 전체 페이지가 캐싱되지 않을 수 있음
  • 관리 부담: 관리할 요소가 많아짐(TTL, 로그인 상태 처리 등)

위의 내용을 보면, 정적 콘텐츠인 블로그에 ESI(Edge Side Includes)를 적용할 경우 캐싱 효과를 얻을 수 없다는 것을 알 수 있는데 예외적으로 로그인 사용자 비중이 높은 블로그일 경우에는 공통 콘텐츠를 캐시할 수 있어 속도 이점을 얻을 수 있습니다.

요약하자면, 블로그의 경우 대부분 ESI(Edge Side Includes)는 필요하지 않으며, 속도를 느리게 하지 않지만 잘못 설정할 경우 캐시 누락으로 인해 오히려 손해를 볼 수 있습니다. 따라서 기본적으로 ESI를 비활성화하는 것이 좋으며, 로그인 사용자가 많거나 위젯을 많이 사용하는 경우에는 활성화한 후 테스트를 진행해 보시기 바랍니다.

ESI(Edge Side Includes) 활성화하는 방법

Edge Side Includes

워드프레스 대시보드에서 LiteSpeed Cache 플러그인 설정으로 이동한 후, ESI는 캐시 기능이므로 캐시 설정으로 들어가시면 됩니다.

Edge Side Includes

ESI 설정에 들어가면 다양한 옵션이 있습니다. 이 중 상단에 있는 ‘ESI 사용’을 ‘켜기’로 변경하면 기능이 활성화됩니다. 아래에 몇 가지 설정이 있는데 아래의 설명을 보시고 필요한 설정을 하시기 바랍니다.

Edge Side Includes
  • 캐시 관리 모음: 이 옵션을 켜면 WorePress 관리자 바(로그인한 사용자에게 페이지 상단에 표시되는 검은색 바)를 ESI 블록으로 캐시합니다. 일반적으로 관리자바는 로그인한 사용자에게만 보이기 때문에 페이지 캐시를 방해합니다. 그래서 이 옵션을 켜면 별로도 캐시하기 때문에 페이지 로딩 속도를 향상시킬 수 있습니다.
  • 댓글 양식 캐시: 로그인하지 않은 사용자가 댓글을 볼 때, 댓글 양식은 동적으로 생성됩니다. 이 옵션을 켜면 댓글 양식만 ESI 블록으로 처리하여 페이지 전체를 캐시할 수 있습니다.
  • ESI 논스: 특정 폼이나 작업에 사용되는 논스는 보안상 캐시되어서는 안 됩니다. ESI 논스 필드에 해당 논스 이름을 입력하면, LiteSpeed는 해당 논스가 포함된 영역을 캐시하지 않고 동적으로 처리합니다. 이는 특히 보안이 중요한 플러그인과의 충돌을 방지하는데 필수적입니다.

ESI 사용에 대한 결론

ESI는 동적 콘텐츠가 많은 웹사이트에 적합한 캐싱 기술로, LiteSpeed Cache 플러그인의 대표적인 기능 중 하나입니다. 그러나 블로그와 같이 정적 콘텐츠가 많은 웹사이트에서는 큰 효과를 기대하기 어렵습니다.

따라서 로그인이 필요한 커뮤니티나 상품 판매 웹사이트를 운영하고 있다면 ESI를 활성화하여 자주 변동하는 부분을 캐싱하면 사이트 속도를 크게 향상시킬 수 있을 것입니다.

▶ 라이트세일에 OpenLiteSpeed(OLS) 웹 서버를 설치하는 방법

▶ OpenliteSpeed 웹서버에 Redis-server 설치하는 방법을 정리

▶ LiteSpeed Cache CDN (QUIC.cloud) 워드프레스에 적용하는 방법

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤