Adobe Managed Services(AMS)の基本的なファイルレイアウト

AMS 標準設定ファイルセットと、Adobe Experience Managerのこの設定標準の背後にある考え方について説明します。

説明 description

環境

Adobe Experience Manager(AEM)

問題/症状

このドキュメントでは、AMS 標準設定ファイルセットと、この設定標準の背後にある考え方について説明します。

解決策 resolution

デフォルトの Enterprise Linux フォルダー構造

AMS では、基本インストールは、基本オペレーティングシステムとして Enterprise Linux を使用します。 Apache web サーバーをインストールすると、デフォルトのインストールファイルが設定されます。 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

インストールの設計/構造に従って作業を行うと、次の利点が得られます。

  • 予測可能なレイアウトのサポートが容易
  • 過去に Enterprise Linux HTTPD のインストールを行ったユーザーは誰でも自動的に理解できます
  • 競合や手動の調整なしに、オペレーティングシステムで完全にサポートされるパッチ適用サイクルを許可します
  • 誤ってラベル付けされたファイルコンテキストの SELinux 違反を回避します

メモ:

Adobe Managed Services サーバーの画像には、通常、小さなオペレーティングシステムのルートドライブが付いています。 データは別のボリュームに配置され、通常は /mnt にマウントされます。

その後、次のデフォルトディレクトリのデフォルトの代わりにボリュームが使用されます。

ドキュメントルート

  • デフォルト:/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/
  • 公開:/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 設定で共通する追加部分があります。 これらのファイルをきれいに分離し、すべてのファイルを 1 つのディレクトリに格納しないようにするために、サブディレクトリを作成しました。

  1. ディレクトリの書き換え このディレクトリには、Apache web サーバー \*_rewrite.rulesmod_rewrite モジュールに関与する典型的な RewriteRule​ 構文を含む、作成したすべての ​ ファイルを格納できます。

    • /etc/httpd/conf.d/rewrites/
  2. 許可リストディレクトリ このディレクトリには、Apache web サーバーに関与する典型的な \*_whitelist.rulesIP 許可 または IP を必要とする 構文を含む、作成したすべての ファイルを格納できます ​ アクセス制御 ​

    • /etc/httpd/conf.d/whitelists/
  3. 変数ディレクトリ このディレクトリは、設定ファイルで使用する変数を含む、作成したすべての \*.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 ディレクトリに相対パスでシンボリックリンクを設定します。

追加の conf.dispatcher.d ディレクトリ

Dispatcher ファームファイル設定のサブセクションである追加の要素があります。サブディレクトリが作成され、これらのファイルをきれいに分離でき、すべてのファイルを 1 つのディレクトリに格納できないようにします。

  1. キャッシュディレクトリ このディレクトリには、作成したすべての *_cache.any ファイルと *_invalidate.any ファイルが含まれています。このファイルには、AEMから取得したキャッシュ要素をモジュールで処理する方法に関するルールと、無効化ルールの構文が含まれています。  この節の詳細については、​ こちら ​ を参照してください。

    • /etc/httpd/conf.dispatcher.d/cache/
  2. クライアントヘッダーディレクトリ このディレクトリには、作成したすべての *_clientheaders.any ファイルを含めることができます。これらのファイルは、リクエストが着信したときにAEMに渡すクライアントヘッダーのリストを含んでいます。  この節の詳細については、​ こちら ​ を参照してください。

    • /etc/httpd/conf.dispatcher.d/clientheaders/
  3. フィルターディレクトリ このディレクトリには、作成したすべての *_filters.any ファイルを含めることができます。これらのファイルは、Dispatcherを通過するトラフィックがAEMに到達するのをブロックまたは許可するすべてのフィルタールールを含んでいます。

    • /etc/httpd/conf.dispatcher.d/filters/
  4. レンダーディレクトリ このディレクトリには、作成したすべての *_renders.any ファイルを含めることができます。これらのファイルには、Dispatcherがコンテンツを使用する各バックエンドサーバーへの接続の詳細が含まれています。

    • /etc/httpd/conf.dispatcher.d/renders/
  5. 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 Webserver Package (httpd)のパッチ適用サイクルがあります。

インストール済みのデフォルトファイルの数が少ないほど、修正する方がよくなります。この理由は、パッチが適用されたセキュリティ修正または設定改善が RPM または Yum コマンドを介して適用された場合、変更されたファイルの上に修正が適用されないからです。

代わりに、.rpmnew ファイルがオリジナルの横に作成されます。  つまり、必要な変更が一部失われ、設定フォルダーにガベージが作成されている可能性があるということです。

Enterprise linux は、このユースケースをより適切に処理するために適切にセットアップされていました。  設定されたデフォルトを拡張または上書きできる領域が提供されます。  httpd のベースインストール内には、ファイル /etc/httpd/conf/httpd.conf があり、次のような構文が含まれています。

Include conf.modules.d/*.conf


IncludeOptional conf.d/*.conf

考え方としては、/etc/httpd/conf.d/file 拡張子を持つ新しいファイルを /etc/httpd/conf.modules.d/ および .conf  ディレクトリに追加する際にはモジュールと設定を拡張することを Apache が求めているということです。

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>

ここでも、ファイルとモジュールが追加されましたが、元のファイルは変更されていません。  これにより、必要な機能が提供され、必要なパッチ修正の欠落から保護されるだけでなく、パッケージのアップグレードごとに最高レベルの互換性が維持されます。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f