Sling Dynamic Include 설정

Apache HTTP Web Server에서 실행 중인 AEM Dispatcher와 함께 Apache Sling Dynamic Include을 설치하고 사용하는 비디오 연습입니다.

노트

AEM Dispatcher 최신 버전이 로컬로 설치되었는지 확인합니다.

  1. Sling Dynamic Include bundle을 다운로드하여 설치합니다.

  2. http://<host>:<port>/system/console/configMgr/org.apache.sling.dynamicinclude.Configuration​에서 OSGi Configuration Factory을 통해 Sling Dynamic Include을 구성합니다.

    또는 AEM 코드 베이스에 추가하려면 다음 위치에서 적절한 sling:OsgiConfig 노드를 만듭니다.

    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0"
        xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
        jcr:primaryType="sling:OsgiConfig"
        include-filter.config.enabled="{Boolean}true"
        include-filter.config.path="/content"
        include-filter.config.resource-types="[my-app/components/content/highly-dynamic]"
        include-filter.config.include-type="SSI" 
        include-filter.config.add_comment="{Boolean}false"
        include-filter.config.selector="nocache"
        include-filter.config.ttl=""
        include-filter.config.required_header="Server-Agent=Communique-Dispatcher"
        include-filter.config.ignoreUrlParams="[]"
        include-filter.config.rewrite="{Boolean}true"
        />
    <!--
    * include-filter.config.include-type="SSI | ESI | JSI"
    * include-filter.config.ttl is # of seconds (requires AEM Dispatcher 4.1.11+)
    -->
    
  3. (선택 사항) 마지막 단계를 반복하여 편집 가능한 템플릿🔗의 잠긴(초기) 컨텐츠에 있는 구성 요소도 SDI를 통해 제공할 수 있습니다. 추가 구성의 이유는 편집 가능한 템플릿의 잠긴 컨텐츠가 /content 대신 /conf에서 제공되기 때문입니다.

    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0"
        xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
        jcr:primaryType="sling:OsgiConfig"
        include-filter.config.enabled="{Boolean}true"
        include-filter.config.path="/conf"
        include-filter.config.resource-types="[my-app/components/content/highly-dynamic]"
        include-filter.config.include-type="SSI" 
        include-filter.config.add_comment="{Boolean}false"
        include-filter.config.selector="nocache"
        include-filter.config.ttl=""
        include-filter.config.required_header="Server-Agent=Communique-Dispatcher"
        include-filter.config.ignoreUrlParams="[]"
        include-filter.config.rewrite="{Boolean}true"
        />
    <!--
    * include-filter.config.include-type="SSI | ESI | JSI"
    * include-filter.config.ttl is # of seconds (requires AEM Dispatcher 4.1.11+)
    -->
    
  4. Apache HTTPD Web server 의 httpd.conf 파일을 업데이트하여 Include 모듈을 사용하도록 설정합니다.

    $ sudo vi .../httpd.conf
    
    LoadModule include_module libexec/apache2/mod_include.so
    
  5. 포함 지시어를 준수하도록 vhost 파일을 업데이트합니다.

    $ sudo vi .../vhosts/aem-publish.local.conf
    
    <VirtualHost *:80>
    ...
       <Directory /Library/WebServer/docroot/publish>
          ...
          # Add Includes to enable SSI Includes used by Sling Dynamic Include
          Options FollowSymLinks Includes
    
          # Required to have dispatcher-handler process includes
          ModMimeUsePathInfo On
    
          # Set includes to process .html files
          AddOutputFilter INCLUDES .html
          ...
       </Directory>
    ...
    </VirtualHost>
    
  6. dispatcher.any 구성 파일을 업데이트하여 (1) nocache 선택기를 지원하고 (2) TTL 지원을 사용하도록 설정합니다.

    $ sudo vi .../conf/dispatcher.any
    
    /rules {
      ...
      /0009 {
        /glob "*.nocache.html*"
        /type "deny"
      } 
    }
    

    위의 glob *.nocache.html* 규칙에서 후행 *을 종료하면 하위 리소스🔗에 대한 요청에 문제가 발생할 수 있습니다.

    /cache {
        ...
        /enableTTL "1"
    }
    
  7. 구성 파일 또는 dispatcher.any을 변경한 후에는 항상 Apache HTTP Web Server을 다시 시작하십시오.

    $ sudo apachectl restart
    
노트

Edge-side includes (ESI)를 제공하는 데 Sling Dynamic Includes을 사용하는 경우 Dispatcher 캐시🔗에 관련 응답 헤더를 캐시해야 합니다. 가능한 헤더에는 다음이 포함됩니다.

  • "Cache-Control"
  • "컨텐츠 처리"
  • "Content-Type"
  • "만료"
  • "마지막 수정 날짜"
  • "ETag"
  • "X-Content-Type-Options"
  • "마지막 수정 날짜"

지원 자료

이 페이지에서는