Adobe Managed Services(AMS) 基本ファイルレイアウト
説明 description
環境
Adobe Experience Manager
問題/症状
このドキュメントでは、AMS 標準設定ファイルセットと、この設定標準の背後にある考え方について説明します。
解決策 resolution
デフォルトの Enterprise Linux フォルダ構造
AMS では、基本インストールは、基本オペレーティングシステムとして Enterprise Linux を使用します。 Apache Web サーバーをインストールすると、デフォルトのインストールファイルが設定されます。 以下は、 yum
リポジトリ。
/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
├── logs - ../../var/log/httpd
├── modules - ../../usr/lib64/httpd/modules
└── run - /run/httpd
インストールの設計/構造に従って作業を行うと、次の利点が得られます。
- 予測可能なレイアウトを容易にサポート
- 過去に Enterprise 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 Web サーバーのベースインストールに追加されます。
ドキュメントルート
AMS デフォルトのドキュメントルート:
- 作成者:
/mnt/var/www/author/
- Publish:
/mnt/var/www/html/
- 包括的およびヘルスチェックのメンテナンス:
/mnt/var/www/default/
VirtualHost ディレクトリのステージングと有効化
次のディレクトリを使用すると、設定ファイルをステージング領域で構築できます。これにより、ファイルで作業し、準備が整ったときにのみ有効にすることができます。
/etc/httpd/conf.d/available_vhosts/
- このフォルダーは、次の名前のすべての VirtualHost/ファイルをホストします:
.vhost
- このフォルダーは、次の名前のすべての VirtualHost/ファイルをホストします:
/etc/httpd/conf.d/enabled_vhosts/
- を使用する準備が整ったら、
.vhost
内にあるファイルavailable_vhosts
フォルダーの場合は、enabled_vhosts
ディレクトリ。
- を使用する準備が整ったら、
追加 conf.d
ディレクトリ
Apache の設定では、他にも共通の要素が存在します。 すべてのファイルを 1 つのディレクトリに含めず、それらのファイルを分離するためのクリーンな方法を可能にするサブディレクトリを作成しました。
-
ディレクトリを書き換え このディレクトリには、
\*_rewrite.rules
作成するファイルに、 RewriteRule Apache Web サーバーを関与させる構文 mod_rewrite モジュール。/etc/httpd/conf.d/rewrites/
-
ホワイトリストディレクトリ このディレクトリには、
\*_whitelist.rules
作成するファイルに、 IP 許可 または IP が必要 Apache Web サーバーを関与させる構文 アクセス制御/etc/httpd/conf.d/whitelists/
-
変数ディレクトリ このディレクトリには、
\*.vars
設定ファイルで使用できる変数を含む、作成するファイル/etc/httpd/conf.d/variables/
Dispatcher モジュール固有の設定ディレクトリ
Apache Web サーバーは非常に拡張可能で、モジュールに多数の設定ファイルがある場合は、デフォルトの設定ディレクトリをクラスター化する代わりに、インストールベースディレクトリの下に独自の設定ディレクトリを作成することをお勧めします。
ベストプラクティスに従って独自に作成しました。
モジュール設定ファイルディレクトリ
/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
directory
- 内にあるファームファイルを使用する準備が整ったら、
追加 conf.dispatcher.d
ディレクトリ
Dispatcher ファームファイル設定のサブセクションである追加の要素があります。サブディレクトリを作成して、それらのファイルを分離し、1 つのディレクトリにすべてのファイルを含めないようにしました。
-
キャッシュディレクトリ このディレクトリには、
*_cache.any
,*_invalidate.any
作成するファイルには、AEMから得られるキャッシュ要素の処理方法と無効化ルール構文に関するルールが含まれます。 この節の詳細は、 ここ/etc/httpd/conf.dispatcher.d/cache/
-
クライアントヘッダーディレクトリ このディレクトリには、
*_clientheaders.any
作成するファイルには、リクエストが送信されたときにAEMに渡すクライアントヘッダーのリストが含まれます。 この節の詳細は、 ここ/etc/httpd/conf.dispatcher.d/clientheaders/
-
Filters ディレクトリ このディレクトリには、
*_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
│ │ ├── aem_author.vhost - ../available_vhosts/aem_author.vhost
│ │ ├── aem_flush.vhost - ../available_vhosts/aem_flush.vhost
│ │ ├── aem_health.vhost - ../available_vhosts/aem_health.vhost
│ │ └── aem_publish.vhost - ../available_vhosts/aem_publish.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
│ ├── enabled_farms
│ │ ├── 000_ams_author_farm.any - ../available_farms/000_ams_author_farm.any
│ │ └── 999_ams_publish_farm.any - ../available_farms/999_ams_publish_farm.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
├── logs - ../../var/log/httpd
├── modules - ../../usr/lib64/httpd/modules
└── run - /run/httpd
理想的な状態を維持
Enterprise Linux には、Apache Webserver Package(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
Dispatcher モジュールを Apache に追加する際の最適な例として、モジュールを作成します。 .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
ファイルとモジュールが追加されましたが、元のファイルは変更されていません。 これにより、必要な機能が提供され、必要なパッチ修正が見つからなくなるのを防ぎ、パッケージのアップグレードごとに最高レベルの互換性を維持できます。