Adobe Managed Services(AMS) 기본 파일 레이아웃
Adobe Experience Manager에서 AMS 표준 구성 파일 세트와 이 구성 표준에 대한 생각을 살펴보십시오.
설명 description
환경
AEM (Adobe Experience Manager)
문제/증상
이 문서에서는 AMS 표준 구성 파일 세트 및 이 구성 표준에 대한 개념에 대해 설명합니다.
해결 방법 resolution
기본 Enterprise Linux 폴더 구조
AMS에서 기본 설치는 Enterprise Linux를 기본 운영 체제로 사용합니다. Apache 웹 서버를 설치할 때 기본 설치 파일 세트가 있습니다. 다음은 yum 저장소에서 제공하는 기본 RPM을 설치하여 설치하는 기본 파일입니다.
/etc/httpd/
├── conf
│ ├── httpd.conf
│ └── magic
├── conf.d
│ ├── autoindex.conf
│ ├── README
│ ├── userdir.conf
│ └── welcome.conf
├── conf.modules.d
│ ├── 00-base.conf
│ ├── 00-dav.conf
│ ├── 00-lua.conf
│ ├── 00-mpm.conf
│ ├── 00-proxy.conf
│ ├── 00-systemd.conf
│ └── 01-cgi.conf
/var/log/httpd
/usr/lib64/httpd/modules
/run/httpd
다음을 수행하고 설치 설계/구조를 준수하면 다음과 같은 이점이 있습니다.
- 예측 가능한 레이아웃 지원 용이
- 이전에 엔터프라이즈 Linux HTTPD 설치로 작업한 적이 있는 모든 사용자에게 자동으로 친숙함
- 운영 체제에서 완벽하게 지원되는 패치 주기를 충돌이나 수동 조정 없이 허용합니다.
- 레이블이 잘못 지정된 파일 컨텍스트의 SELinux 위반 방지
참고:
Adobe Managed Services 서버 이미지에는 일반적으로 작은 운영 체제 루트 드라이브가 있습니다. 데이터는 일반적으로 /mnt에 탑재된 별도의 볼륨에 저장됩니다.
그런 다음 다음 다음 기본 디렉토리의 기본값 대신 볼륨이 사용됩니다.
DocumentRoot
- 기본값:
/var/www/html - AMS:
/mnt/var/www/html
로그 디렉터리
- 기본값:
/var/log/httpd - AMS:
/mnt/var/log/httpd
기존 디렉토리와 새 디렉토리가 혼동을 방지하기 위해 원래 마운트 지점에 다시 매핑된다는 점을 기억하십시오. 별도의 볼륨을 사용하는 것은 중요하지 않지만 주목할 만한 일입니다.
AMS 추가 기능
AMS는 Apache 웹 서버의 기본 설치에 을 추가합니다.
문서 루트
AMS 기본 문서 루트:
- 작성자:
/mnt/var/www/author/ - 게시:
/mnt/var/www/html/ - 다목적 캐치 및 상태 검사 유지 관리:
/mnt/var/www/default/
스테이징 및 활성화된 VirtualHost 디렉터리
다음 디렉터리를 사용하면 준비 영역이 있는 구성 파일을 작성할 수 있으므로 파일을 작업하고 준비가 되었을 때만 활성화할 수 있습니다.
/etc/httpd/conf.d/available_vhosts/- 이 폴더는
<이라는>VirtualHost /.vhost파일을 모두 호스팅합니다.
- 이 폴더는
/etc/httpd/conf.d/enabled_vhosts/.vhost폴더 내에 있는available_vhosts파일을 사용할 준비가 되면enabled_vhosts디렉터리에 상대 경로를 사용하여 해당 파일을 심볼릭 링크합니다.
추가 conf.d개 디렉터리
Apache 구성에서 일반적인 추가 부분이 있습니다. 하위 디렉토리를 만들어 이러한 파일을 깔끔하게 분리할 수 있도록 하고, 일부 파일은 하나의 디렉토리에 포함할 수 없습니다.
-
디렉터리 다시 쓰기 이 디렉터리에는 Apache 웹 서버
\*_rewrite.rulesmod_rewrite 모듈을 연결하는 일반적인 RewriteRule 구문이 들어 있는 파일을 모두 포함할 수 있습니다./etc/httpd/conf.d/rewrites/
-
허용 목록 디렉터리 이 디렉터리에는 일반적인
\*_whitelist.rulesIP 허용 또는 Apache 웹 서버 액세스 제어를 사용하는 IP 필요 구문을 포함하는 파일을 모두 포함할 수 있습니다./etc/httpd/conf.d/whitelists/
-
변수 디렉터리 이 디렉터리에는 구성 파일에서 사용할 수 있는 변수를 포함하는
\*.vars파일이 모두 들어 있을 수 있습니다./etc/httpd/conf.d/variables/
Dispatcher 모듈별 구성 디렉터리
Apache 웹 서버는 매우 확장 가능하며 모듈에 구성 파일이 많을 경우 기본 구성 디렉토리를 어지럽히지 않고 설치 기본 디렉토리 아래에 고유한 구성 디렉토리를 만드는 것이 가장 좋습니다.
모범 사례가 만들어지고 따릅니다.
모듈 구성 파일 디렉터리
/etc/httpd/conf.dispatcher.d/
스테이징 및 활성화된 팜 디렉터리
다음 디렉터리를 사용하면 스테이징 영역이 있는 구성 파일을 작성할 수 있으므로 파일을 작업하고 준비가 되었을 때만 사용할 수 있습니다.
/etc/httpd/conf.dispatcher.d/available_farms/- 이 폴더는
/myfarm {이라는 모든*_farm.any파일을 호스팅합니다.
- 이 폴더는
/etc/httpd/conf.dispatcher.d/enabled_farms/available_farms폴더 내에 있는 팜 파일을 사용할 준비가 되면enabled_farms디렉터리의 상대 경로를 사용하여 심볼릭 링크를 만듭니다.
추가 conf.dispatcher.d개 디렉터리
Dispatcher 팜 파일 구성의 하위 섹션인 추가 조각이 있고, 하위 디렉토리는 이러한 파일을 분리하는 깔끔한 방법을 허용하기 위해 생성되며 하나의 디렉토리에 모든 파일이 없습니다.
-
캐시 디렉터리 이 디렉터리에는 모듈이 AEM에서 가져온 캐싱 요소와 무효화 규칙 구문을 처리하는 방법에 대한 규칙이 들어 있는 사용자가 만드는 모든
*_cache.any,*_invalidate.any파일이 포함되어 있습니다. 이 섹션에 대한 자세한 내용은 여기를 참조하세요./etc/httpd/conf.dispatcher.d/cache/
-
클라이언트 헤더 디렉터리 이 디렉터리에는 요청이 들어올 때 AEM에 전달할 클라이언트 헤더 목록을 포함하여 사용자가 만든 모든
*_clientheaders.any파일이 들어 있을 수 있습니다. 이 섹션에 대한 자세한 내용은 여기를 참조하세요./etc/httpd/conf.dispatcher.d/clientheaders/
-
필터 디렉터리 이 디렉터리에는 사용자가 만든 모든
*_filters.any파일이 들어 있을 수 있으며, 이 파일에는 모든 필터 규칙을 포함하여 Dispatcher을 통한 트래픽이 AEM에 도달하지 못하도록 차단하거나 허용하도록 할 수 있습니다./etc/httpd/conf.dispatcher.d/filters/
-
디렉터리 렌더링 이 디렉터리에는 사용자가 만드는 모든
*_renders.any파일이 들어 있을 수 있으며, 여기에는 Dispatcher에서 콘텐츠를 사용하는 각 백엔드 서버에 대한 연결 정보가 들어 있습니다./etc/httpd/conf.dispatcher.d/renders/
-
Vhosts 디렉터리 이 디렉터리에는 사용자가 만든 모든
*_vhosts.any파일이 들어 있을 수 있으며 여기에는 특정 팜과 특정 백엔드 서버에 일치하는 도메인 이름 및 경로 목록이 들어 있습니다./etc/httpd/conf.dispatcher.d/vhosts/
폴더 구조 완료
AMS는 네임스페이스 문제/충돌 및 혼란을 방지하기 위해 사용자 지정 파일 확장자와 함께 각 파일을 구조화했습니다.
다음은 AMS 기본 배포의 표준 파일 세트의 예입니다.
/etc/httpd/``
├── conf``
│├── httpd.conf``
│└── magic
├── conf.d
│├── autoindex.conf
│├── available_vhosts
││ ├── 000_unhealthy_author.vhost
││├── 000_unhealthy_publish.vhost
││├── aem_author.vhost
││├── aem_flush.vhost
││├── aem_health.vhost
│ │ ├── aem_lc.vhost
│ │ └── aem_publish.vhost
│ ├── dispatcher_vhost.conf
│ ├── enabled_vhosts
.vhost
.vhost
.vhost
.vhost
│ ├── README│ ├── rewrites
│ │ ├── base_rewrite.rules
│ │ └── xforwarded_forcessl_rewrite.rules│ ├── userdir.conf
│ ├── variables│ │ └── ams_default.vars
│ ├── welcome.conf
│ └── whitelists│ └── 000_base_whitelist.rules
├── conf.dispatcher.d
│ ├── available_farms│ │ ├── 000_ams_author_farm.any
│ │ ├── 001_ams_lc_farm.any│ │ └── 999_ams_publish_farm.any
│ ├── cache
│ │ ├── ams_author_cache.any
│ │ ├── ams_author_invalidate_allowed.any
│ │ ├── ams_publish_cache.any
│ │ └── ams_publish_invalidate_allowed.any
│ ├── clientheaders
│ │ ├── ams_author_clientheaders.any
│ │ ├── ams_common_clientheaders.any
│ │ ├── ams_lc_clientheaders.any
│ │ └── ams_publish_clientheaders.any
│ ├── dispatcher.any
.any
.any
│ ├── filters
│ │ ├── ams_author_filters.any
│ │ ├── ams_lc_filters.any
│ │ └── ams_publish_filters.any
│ ├── renders
│ │ ├── ams_author_renders.any
│ │ ├── ams_lc_renders.any
│ │ └── ams_publish_renders.any
│ └── vhosts
│ ├── ams_author_vhosts.any
│ ├── ams_lc_vhosts.any
│ └── ams_publish_vhosts.any
├── conf.modules.d
│ ├── 00-base.conf
│ ├── 00-dav.conf
│ ├── 00-lua.conf
│ ├── 00-mpm.conf
│ ├── 00-proxy.conf
│ ├── 00-systemd.conf
│ ├── 01-cgi.conf
│ └── 02-dispatcher.conf
/var/log/httpd
/usr/lib64/httpd/modules
/run/httpd
이상적 유지
Enterprise Linux에는 Apache 웹 서버 패키지(httpd)에 대한 패치 주기가 있습니다.
RPM / Yum 명령을 통해 적용된 패치 보안 수정 사항이나 구성 개선 사항이 있는 경우 변경된 파일의 상단에 수정 사항을 적용하지 않기 때문에, 기본 파일을 적게 변경할수록 더 좋습니다.
대신 원본 옆에 .rpmnew 파일이 만들어집니다. 이는 원하는 일부 변경 사항을 놓치고 구성 폴더에 불필요한 정보를 더 만들게 됨을 의미합니다.
이 사용 사례를 보다 효과적으로 처리하기 위해 Enterprise Linux가 제대로 설정되었습니다. 이 옵션을 사용하면 설정된 기본값을 확장하거나 재정의할 수 있는 영역이 제공됩니다. httpd의 기본 설치 내에서 /etc/httpd/conf/httpd.conf 파일을 찾을 수 있으며, 파일 안에 다음과 같은 구문이 있습니다.
Include conf.modules.d/*.conf
IncludeOptional conf.d/*.conf
Apache에서 /etc/httpd/conf.d/파일 확장명을 사용하여 /etc/httpd/conf.modules.d/ 및 .conf 디렉터리에 새 파일을 추가할 때 모듈 및 구성을 확장하기를 원한다는 것이 좋습니다.
Apache에 Dispatcher 모듈을 추가할 때 완벽한 예로, .so에 모듈 /etc/httpd/modules/ 파일을 만든 다음, /etc/httpd/conf.modules.d/02-dispatcher.conf에 파일을 추가하고 해당 내용과 함께 모듈 .so 파일을 로드합니다.
LoadModule dispatcher_module modules/mod_dispatcher.so
Apache가 제공한 기존 파일은 변경되지 않습니다. 해당 디렉터리가 들어갈 디렉터리에 방금 내 디렉터리를 추가했습니다.
이제 모듈을 초기화하고 초기 모듈별 구성 파일을 로드하는 /etc/httpd/conf.d/dispatcher_vhost.conf 파일의 모듈을 사용합니다.
<IfModule disp_apache2.c>
DispatcherConfig conf.dispatcher.d/dispatcher.any
...SNIP...</IfModule>
파일과 모듈이 추가되었지만 원본 파일은 변경되지 않았습니다. 이를 통해 원하는 기능을 제공할 수 있으며, 원하는 패치 수정 사항이 누락되지 않도록 보호할 수 있을 뿐만 아니라 패키지의 각 업그레이드와 최고 수준의 호환성을 유지할 수 있습니다.