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
  • /etc/httpd/conf.d/enabled_vhosts/
    • を使用する準備が整ったら、 .vhost 内にあるファイル available_vhosts フォルダーの場合は、 enabled_vhosts ディレクトリ。

追加 conf.d ディレクトリ

Apache の設定では、他にも共通の要素が存在します。 すべてのファイルを 1 つのディレクトリに含めず、それらのファイルを分離するためのクリーンな方法を可能にするサブディレクトリを作成しました。

  1. ディレクトリを書き換え このディレクトリには、 \*_rewrite.rules 作成するファイルに、 RewriteRule Apache Web サーバーを関与させる構文 mod_rewrite モジュール。

    • /etc/httpd/conf.d/rewrites/
  2. ホワイトリストディレクトリ このディレクトリには、 \*_whitelist.rules 作成するファイルに、 IP 許可 または IP が必要 Apache Web サーバーを関与させる構文 アクセス制御

    • /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 directory

追加 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 ディレクトリ このディレクトリには、 *_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
│   │   ├── 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

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

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