設定ファイルの説明 | AEM

Managed Servicesの Dispatcher サーバーでのAdobeファイルの詳細な分類を確認します。 その重要性、命名規則、および実用的なアプリケーションを明らかにします。

説明 description

環境

Adobe Experience Manager

問題/症状

このドキュメントでは、AdobeManaged Servicesでプロビジョニングされた標準のビルド Dispatcher サーバーにデプロイされた各設定ファイルについて、それぞれの内訳と説明を示します。 使用方法、命名規則など。

命名規則

Apache Webserver は、include ステートメントまたは includeoptional ステートメントでターゲティングする場合、ファイルの拡張子が何であるかは実際には気にしません。 競合や混乱を避ける名前を付けて適切に名前を付けると、大変便利です。 使用される名前は、ファイルが適用される範囲を示すので、作業が容易になります。 すべての名前が.conf である場合、これは非常に混乱を招きます。 アドビでは、不適切な名前のファイルと拡張子は避けたいと考えています。

一般的な AMS 設定済みの Dispatcher で使用される様々なカスタムファイル拡張子と命名規則のリストを以下に示します。

conf.d/に含まれるファイル

ファイル
ファイルの保存先
説明
< ファイル名> .conf
/etc/httpd/conf.d/
デフォルトの Enterprise Linux インストールでは、このファイル拡張子を使用し、フォルダーを httpd.conf の設定を上書きする場所として含めます。また、Apache のグローバルレベルで追加機能を追加できます。
< ファイル名> .vhost

Staged: /etc/httpd/conf.d/available_vhosts/

アクティブ:

/etc/httpd/conf.d/enabled_vhosts/

*注意: .vhost ファイルは enabled_vhosts フォルダーにコピーされませんが、available_vhosts/ .vhost ファイルへの相対パスへの symlinks を使用します。

*.vhost (仮想ホスト)ファイルは < VirtualHosts >  エントリを使用してホスト名を照合し、Apache が異なるルールで各ドメイントラフィックを処理できるようにします。 .vhost ファイルから、書き換え、ホワイトリストへの登録など、他のファイルが含まれます。
< ファイル名> _rewrite.rules
/etc/httpd/conf.d/rewrites/
*_rewrite.rules ファイルストア mod_rewrite vhost ファイルによって明示的に含まれ、使用されるルール
< ファイル名> _whitelist.rules
/etc/httpd/conf.d/whitelists/
*_ipwhitelist.rules ファイルは、*.vhost ファイル内からインクルードされます。 IP の正規表現または IP の許可リストへの登録を許可する拒否ルールが含まれます。 IP アドレスに基づいて仮想ホストの表示を制限しようとする場合は、これらのファイルの 1 つを生成し、*.vhost ファイルからそのファイルを含めます

conf.modules.d/に含まれるファイル

ファイル
ファイルの保存先
説明
< ファイル名> .any
/etc/httpd/conf.dispatcher.d/
AEM Dispatcher の Apache モジュールは、*.any ファイルから設定を取得します。 デフォルトの親インクルードファイルは conf.dispatcher.d/dispatcher.anyです。
< ファイル名> _farm.any

Staged

:

/etc/httpd/conf.dispatcher.d/available_farms/

アクティブ

:

/etc/httpd/conf.dispatcher.d/enabled_farms/

*注意:これらのファームファイルは enabled_farms フォルダーにコピーされませんが、available_farms/ _farm.any ファイルへの相対パスへのシンボリックリンクを使用します。

*farm.any ファイルは、conf.dispatcher.d/dispatcher.anyファイル内に含まれます。 これらの親 farm ファイルは、レンダリングまたは web サイトタイプごとにモジュールの動作を制御するために存在します。 ファイルは available_farms ディレクトリに作成され、 enabled_farms ディレクトリへの symlink を使用して有効になります。

dispatcher.any ファイルから名前別に自動インクルードされます。

ベースラインファームファイルは 000 から始まります
最初に読み込まれるようにするために。

カスタムファームファイルは、適切なインクルード動作を保証するために、番号スキームを 100_で開始し、の後に読み込む必要があります。
< ファイル名> _filters.any
/etc/httpd/conf.dispatcher.d/filters/
*_filters.any ファイルは、conf.dispatcher.d/enabled_farms/*_farm.any ファイル内からインクルードされます。 各 farm には、どのトラフィックをフィルターで除外し、レンダラーに送信しないかを変更する一連のルールがあります。
< ファイル名> _vhosts.any
/etc/httpd/conf.dispatcher.d/vhosts/
*_vhosts.any ファイルは、conf.dispatcher.d/enabled_farms/*_farm.any ファイル内からインクルードされます。 これらのファイルは、BLOB マッチングによって照合されて、そのリクエストを処理するためのレンダラーを決定するホスト名または URI パスのリストです。
< ファイル名> _cache.any
/etc/httpd/conf.dispatcher.d/cache/
*_cache.any ファイルは、conf.dispatcher.d/enabled_farms/*_farm.any ファイル内からインクルードされます。 これらのファイルは、キャッシュされる項目とキャッシュされない項目を指定します。
< ファイル名> _invalidate_allowed.any
/etc/httpd/conf.dispatcher.d/cache/
*_invalidate_allowed.any ファイルは、conf.dispatcher.d/enabled_farms/*_farm.any ファイル内に含まれます。 フラッシュリクエストと無効化リクエストの送信を許可する IP アドレスを指定します。
< ファイル名> _clientheaders.any
/etc/httpd/conf.dispatcher.d/clientheaders/
*_clientheaders.any ファイルは、conf.dispatcher.d/enabled_farms/*_farm.any ファイル内に含まれます。 各レンダラーに渡すクライアントヘッダーを指定します。
< ファイル名> _renders.any
/etc/httpd/conf.dispatcher.d/renders/
*_renders.any ファイルは、conf.dispatcher.d/enabled_farms/*_farm.any ファイル内に含まれます。 各レンダラーの IP、ポートおよびタイムアウト設定を指定します。適切なレンダラーは、Dispatcher が要求を取得/プロキシできる LiveCycle サーバーまたはAEMシステムです。

回避された問題

命名規則に従うと、破局的な結果を招く可能性のあるミスを簡単に行うことができます。 いくつかの例を取り上げます。

問題の例

ExampleCo のサイト例として、Dispatcher 設定の開発者が 2 つの設定ファイルを作成しました。

/etc/httpd/conf.d/exampleco.conf

<VirtualHost *:80>

    ServerName  "exampleco"

    ServerAlias "www.exampleco.com"

    .......... SNIP ...............

    <IfModule mod_rewrite.c>

        ReWriteEngine   on

        LogLevel warn rewrite:trace1

        Include /etc/httpd/conf.d/rewrites/exampleco.conf

    </IfModule>

</VirtualHost>

/etc/httpd/conf.d/rewrites/exampleco.conf

RewriteRule /$ /content/exampleco/en.html [ PT,L]

RewriteRule /robots.txt$ /content/dam/exampleco/robots.txt [ PT,L]

潜在的な危険

A.ファイル名が同じです。

vhost ファイルが誤って rewrites フォルダーに入れられ、書き換えファイルが vhosts フォルダーに入れられた場合。 ファイル名で適切にデプロイされているように見えますが、Apache はエラーをスローし、問題はすぐには発見されません。

これは通常、どのようにして問題になりますか?

2 つのファイルが同じ場所にダウンロードされた場合、ファイルは上書きされるか、デプロイメントプロセスが悪夢の状態になるので、区別がつかなくなる可能性があります。

B.ファイル拡張子が同じで、自動インクルードが発生しやすくなります

ファイル拡張子は同じで、自動インクルードの拡張子を使用します。Apache は、その多くのデフォルトフォルダーにあらゆる.conf ファイルを自動的にインクルードします。

これは通常、どのようにして問題になりますか?

拡張子が.conf の vhost ファイルが/etc/httpd/conf.d/フォルダーに置かれている場合は、通常は問題なく、Apache 上のメモリに読み込みますが、拡張子が.conf の書き換えルールファイルが /etc/httpd/conf.d/ フォルダーに自動インクルードされ、グローバルに適用され、混乱を招く、望ましくない結果が生じます。

解決策 resolution

実行する内容に応じて、自動インクルードルールの名前空間に属さない安全な名前をファイルに付けます。

  • 仮想ホストファイルの場合は、 .vhost を拡張として使用します。
  • 書き換えルールファイルの場合は、と名前を付けます。 <site>_rewrite.rules をサフィックスと拡張子として使用します。 この命名規則により、どのサイトに適用され、書き換えルールのセットであるかが明確になります。
  • IP ホワイトリストルールファイルの場合は、と名前を付けます。 <description>_whitelist.rules をサフィックスと拡張子として使用します。 この命名規則では、何のためのもの、および一連の IP 一致ルールであることについて説明します。

これらの命名規則を使用すると、属していない自動インクルードディレクトリにファイルが移動された場合に、問題を回避できます。

例えば、.rules、.any、.vhost という名前のファイルをの自動インクルードフォルダーに配置します。 /etc/httpd/conf.d/ 何の影響も与えなかった

デプロイメントの変更リクエストに次の内容が含まれる場合 please deploy exampleco_rewrite.rules to production dispatchers 変更を導入したユーザーは、新しいサイトが追加されていないことを既に認識している場合があります。ファイル名で示される書き換えルールを更新するだけです。

注文を含める

Enterprise Linux にインストールされた Apache Web サーバーで機能と設定を拡張する場合、いくつかの重要な点があります 注文を含める 分かりたいと思うでしょう

A. Apache ベースラインに含まれる

apache のベースラインインクルードの順序。 apache バイナリは httpd.conf で始まり、conf.d/*.conf および conf.modules.d/*.conf ディレクトリ

上の図で示すように、httpd バイナリは、設定ファイルと同じように httpd.conf ファイルのみを参照します。 そのファイルには次の文が含まれています。

Include conf.modules.d/*.conf

IncludeOptional conf.d/*.conf

B. AMS トップレベルインクルード

標準を適用する際に、追加のファイルタイプと独自のインクルードをいくつか追加しました。

AMS ベースラインディレクトリとトップレベルインクルードは次のとおりです

AMS ベースラインには、/etc/httpd/conf.d/enabled_vhosts/ディレクトリの*.vhost を持つすべてのファイルを含む dispatcher_vhost.conf で始まるインクルードが含まれます。 /etc/httpd/conf.d/enabled_vhosts/ディレクトリ内の項目は、/etc/httpd/conf.d/available_vhosts/に存在する実際の設定ファイルへのシンボリックリンクです。

Apache のベースラインを構築する際には、AMS が用に追加のフォルダーとトップレベルのインクルードを作成する方法を示します。 conf.d フォルダと、の下にネストされたモジュール固有のディレクトリ /etc/httpd/conf.dispatcher.d/

Apache が読み込むと、 /etc/httpd/conf.modules.d/02-dispatcher.conf と指定し、そのファイルにバイナリファイルが含まれます。 /etc/httpd/modules/mod_dispatcher.so 実行状態に移行します。

LoadModule dispatcher_module modules/mod_dispatcher.so

モジュールを </VirtualHost> 次の場所に設定ファイルをドロップします。 /etc/httpd/conf.d/ 名前付き dispatcher_vhost.conf このファイル内には、モジュールの動作に必要な基本パラメータを設定する方法が表示されます。

<IfModule disp_apache2.c>

DispatcherConfig conf.dispatcher.d /dispatcher .any

...SNIP...

</IfModule>

上記のように、ディスパッチャーモジュールが設定ファイルを取り出すためのトップレベルの dispatcher.any ファイルが含まれます。 /etc/httpd/conf.dispatcher.d/dispatcher.any

このファイルの内容に注意を払ってください。

/farms {

   $include "enabled_farms/*_farm.any"

}

トップレベルの dispatcher.any ファイルには、に存在するすべての有効なファームファイルが含まれます。 /etc/httpd/conf.dispatcher.d/enabled_farms/ ファイル名を <FILENAME>_farm.any 標準の命名規則に従う

後で dispatcher_vhost.conf 前述のファイルでは、に存在する有効な各仮想ホストファイルを有効にする include ステートメントも実行します。 /etc/httpd/conf.d/enabled_vhosts/ ファイル名を <FILENAME>.vhost 標準の命名規則に従う

IncludeOptional /etc/httpd/conf.d/enabled_vhosts/*.vhost

各.vhost ファイルでは、Dispatcher モジュールがディレクトリのデフォルトのファイルハンドラーとして初期化されることに注意してください。 構文を示す.vhost ファイルの例を次に示します。

<VirtualHost *:80>

    ServerName    "weretail"

    ServerAlias www.weretail.com weretail.com

    <Directory />

        <IfModule disp_apache2.c>

            ....SNIP....

            SetHandler dispatcher-handler

        </IfModule>

        ....SNIP....

    </Directory>

    ....SNIP....

</VirtualHost>

トップレベルのインクルードの解決後に、言及価値のある他のサブインクルードがあります。 ファームと vhosts ファイルに他のサブ要素が含まれる仕組みの概要図を次に示します

C. AMS 仮想ホストに含まれる

ams 仮想ホストにはサブ項目が含まれます。 この図は、1 つの.vhost ファイルが、変数、ホワイトリスト、および書き換えフォルダーのファイルをどのように含むかを示しています

.vhost ファイルが /etc/httpd/conf.d/availabled_vhosts/ ディレクトリは次の場所に symlinked されます: /etc/httpd/conf.d/enabled_vhosts/ 実行中の設定で使用されるディレクトリ。

.vhost ファイルには、見つかった共通部分に基づくサブインクルードが含まれています。変数、許可リスト、書き換えルールなどがあります。

.vhost ファイルには、.vhost ファイル内のインクルード先に基づいて、各ファイルに対する include ステートメントが含まれます。  次に、.vhost ファイルの構文の例を示します。

Include /etc/httpd/conf .d /variables/weretail .vars VirtualHost *:80

ServerName    "${MAIN_DOMAIN}"

Directory /          Include /etc/httpd/conf .d /whitelists/weretail *_whitelist.rules

IfModule disp_apache2.c

....SNIP....

SetHandler dispatcher-handler

/IfModule

....SNIP....

/Directory

....SNIP....

IfModule mod_rewrite.c

ReWriteEngine   on

LogLevel warn rewrite:trace1

Include /etc/httpd/conf .d /rewrites/weretail_rewrite .rules

/IfModule /VirtualHost

上記の例に示すように、この設定ファイルで必要な変数には、後で使用するインクルードがあります。

ファイル内 /etc/httpd/conf.d/variables/weretail.vars 定義されている変数を確認できます。

Define MAIN_DOMAIN dev.weretail.com

また、様々なホワイトリスト条件に基づいてこのコンテンツを表示できるユーザーを制限する whitelist.rules ファイルのリストを含む行を確認することもできます。 ホワイトリストファイルの 1 つの内容を見てみましょう /etc/httpd/conf.d/whitelists/weretail_mainoffice_whitelist.rules:

<RequireAny>

  Require ip 192.150.16.0/23

</RequireAny>

また、一連の書き換えルールを含む行を確認することもできます。 次に、 weretail_rewrite.rules ファイル:

RewriteRule /robots.txt$ /content/dam/weretail/robots.txt [ NC,PT]

RewriteCond %{SERVER_NAME} brand1.weretail.net [ NC]

RewriteRule /favicon.ico$ /content/dam/weretail/favicon.ico [ NC,PT]

RewriteCond %{SERVER_NAME} brand2.weretail.com [ NC]

RewriteRule /sitemap.xml$ /content/weretail/general/sitemap.xml [ NC,PT]

RewriteRule /logo.jpg$ /content/dam/weretail/general/logo.jpg [ NC,PT]

D. AMS ファームインクルード

<FILENAME>_farms.any は、ファームの設定を完了するためにサブ.any ファイルを含みます。この図では、ファームに各トップレベルセクションファイルのキャッシュ、クライアントヘッダー、フィルター、レンダリング、および vhosts .any ファイルが含まれていることがわかります。

/etc/httpd/conf.dispatcher.d/available_farms/ ディレクトリの <FILENAME>_farm.any ファイルが /etc/httpd/conf.dispatcher.d/enabled_farms/ ディレクトリにシンボリックリンクされた場合、実行中の設定に使用されます。

ファームファイルには、キャッシュ、クライアント ヘッダー、フィルター、レンダーおよび vhost など、ファームのトップレベルセクションに基づくサブインクルードがあります。

<FILENAME>_farm.any ファイルには、ファームファイル内のインクルード先に基づいて、各ファイルのインクルード文が含まれます。 次に、 <FILENAME>_farm.any ファイルを参照してください。

/weretailfarm {

    /clientheaders {

        $include "/etc/httpd/conf.dispatcher.d/clientheaders/ams_publish_clientheaders.any"

        $include "/etc/httpd/conf.dispatcher.d/clientheaders/ams_common_clientheaders.any"

    }

    /virtualhosts {

        $include "/etc/httpd/conf.dispatcher.d/vhosts/weretail_vhosts.any"

    }

    /renders {

        $include "/etc/httpd/conf.dispatcher.d/renders/ams_publish_renders.any"

    }

    /filter {

        $include "/etc/httpd/conf.dispatcher.d/filters/ams_publish_filters.any"

        $include "/etc/httpd/conf.dispatcher.d/filters/weretail_search_filters.any"

    }

    ....SNIP....

    /cache {

        ....SNIP....

        /rules {

            $include "/etc/httpd/conf.dispatcher.d/cache/ams_publish_cache.any"

        }

        ....SNIP....

        /allowedClients {

            /0000 {

                /glob "*.*.*.*"

                /type "deny"

            }

            $include "/etc/httpd/conf.dispatcher.d/cache/ams_publish_invalidate_allowed.any"

        }

    ....SNIP....

    }

}

WaRetail ファームの各セクションは、必要なすべての構文を持つ代わりに、インクルード文を使用して表示されます。

これらのインクルードのいくつかの構文を見て、各サブインクルードがどのように表示されるかを把握しましょう。 /etc/httpd/conf.dispatcher.d/vhosts/weretail_publish_vhosts.any:

"brand1.weretail.com"

"brand2.weretail.com"

"www.weretail.comf"

これは、改行で区切られたドメイン名のリストで、このファームから他のファームより上位にレンダリングする必要があります。

次に、 /etc/httpd/conf.dispatcher.d/filters/weretail_search_filters.any:

/400 { /type "allow" /method "GET" /path "/bin/weretail/lists/*" /extension "json" }

/401 { /type "allow" /method "POST" /path "/bin/weretail/search/" /extension "html" }
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f