에지측 포함 edge-side-includes

NOTE
이 기능은 아직 일반적으로 사용할 수 없습니다. 얼리어답터 프로그램에 참여하려면 다음 이메일을 보내십시오. aemcs-cdn-config-adopter@adobe.com 사용 사례를 설명합니다.

컨텐츠 전달 속도는 높은 TTL(Time to Live) 값으로 캐시 헤더를 설정하여 적극적으로 페이지를 캐싱할 때 도움이 됩니다. 페이지에 동적 콘텐츠가 포함되어 있어 자주 새로 고쳐야 하거나 캐시할 수 없는 경우에는 문제가 될 수 있습니다. 다행히도 포함된 HTML 페이지를 높은 TTL로 캐시할 수 있어 클라이언트측 Javascript를 통해 또는 CDN에서 보다 동적 콘텐츠 스니펫 가져오기를 지연할 수 있는 전략이 있습니다. 후자의 접근 방식은 AEM 게시로 렌더링된 사이트에 대해 지원되는 ESI(Edge Side Includes)라는 표준입니다. HTML은 CDN이 이러한 태그를 평가할 때까지 브라우저에 대한 페이지 제공을 지연하도록 지시하는 ESI 태그를 포함하여 원본(또는 TTL이 만료되지 않은 경우 CDN 캐시)에서 추가적인 더 동적인(더 낮은 TTL) 콘텐츠를 검색합니다.

Edge Side Includes 가 유용한 사용 사례는 다음과 같습니다.

  • 최종 사용자의 이름 또는 최종 사용자에 고유한 기타 정보를 표시합니다.
  • 뉴스 기사 또는 주가와 같은 최근 정보 목록 표시

ESI 구문 esi-syntax

ESI 구문은 상위 페이지인 경우 다음과 같습니다 /content/page.html 코드 조각 포함 content/snippets/mysnippet.html.

<html>
  <head>
      <title>My Site</title>
  </head>
  <body>
    <div id="content">
      <esi:include src="/content/snippets/mysnippet.html" />
    </div>
  </body>
</html>

다음을 참조하십시오. ESI 사양 을 참조하십시오.

고려 사항 esi-syntax-considerations

  • 지원되는 ESI 태그는 다음과 같습니다. include, comment, remove.
  • ESI 태그는 동시에 처리되지 않고 CDN에서 순차적으로 처리되므로 TTL이 낮은 페이지의 많은 ESI 태그는 최종 사용자의 경험에 지연을 추가할 수 있습니다.
  • ESI의 최대 깊이(include processing)는 5입니다.
  • 최대 총 ESI: 처리 조각 포함은 256입니다.

Apache 구성 esi-apache

ESI 태그가 있는 페이지가 있는 경우 Apache 구성에 다음 속성을 선언해야 합니다.

<LocationMatch "/parent-pages/*content/page.html">
   # disable dispatcher compression
   SetEnv no-gzip 1
   # enable esi processing
   Header set x-aem-esi "on"
   # enable edgeCDN compression
   Header set x-aem-compress "on"

   # typically the main page is cached at the CDN
   Header always set Cache-Control "max-age=300"
 </LocationMatch>


<LocationMatch "/content/snippets/mysnippet.html">
  SetEnv no-gzip 1

  # typically the included page is either set to a lower TTL than the parent page, or not cached at all, as these 2 commented declarations show, respectively:
  #Header always set Cache-Control "no-cache"
  #Header always set Cache-Control "max-age=50"
 </LocationMatch>

구성된 속성에는 다음과 같은 동작이 있습니다.

속성
동작
no-gzip
1로 설정하면 HTML 페이지가 apache에서 CDN으로 압축되지 않은 상태로 전송됩니다. CDN이 ESI 태그를 보고 평가할 수 있도록 압축되지 않은 CDN으로 콘텐츠를 보내야 하기 때문에 ESI에 필요합니다.

상위 페이지와 포함된 코드 조각 모두 no-gzip을 1로 설정해야 합니다.

이 설정은 요청을 기반으로 Apache가 달리 사용할 수 있는 압축 설정을 무시합니다. Accept-Encoding 값.
x-aem-esi
"on"으로 설정하면 CDN이 상위 HTML 페이지의 ESI 태그를 평가합니다. 기본적으로 헤더는 설정되지 않습니다.
x-aem-compress
"on"으로 설정하면 CDN이 CDN의 콘텐츠를 브라우저로 압축합니다. ESI가 작동하려면 Apache에서 CDN으로 상위 페이지 전송이 압축되지 않아야 하므로 (no-gzip 1)로 설정하면 지연이 줄어들 수 있습니다.

이 헤더가 설정되지 않은 경우 CDN이 압축되지 않은 소스에서 콘텐츠를 검색할 때 압축되지 않은 클라이언트에도 콘텐츠를 제공합니다. 따라서 다음과 같은 경우 이 헤더를 설정해야 합니다 no-gzip 가 1(ESI에 필요)로 설정되고 CDN에서 압축된 컨텐츠를 브라우저에 제공해야 합니다.

Sling Dynamic 포함 항목 esi-sdi

필수는 아니지만, Sling Dynamic Include CDN에서 해석되는 ESI 스니펫을 생성하는 데 SDI(SDI)를 사용할 수 있습니다.

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab