各 AEM パブリッシュインスタンスの http://aem-host:port/miscadmin を開きます。
Web サーバーに、別々の AEM Dispatcher キャッシュファームが設定されている仮想ホストが複数ある場合、AEM から適切なキャッシュをフラッシュするには、どうすればよいですか。
環境
Apache HTTP Server/AEM Dispatcher
手順
Dispatcher ファームごとに Dispatcher フラッシュエージェントを 1 つずつ設定して、ホストヘッダーを設定し、「エージェントユーザー ID」を、関連するパスの読み取り権限を持つユーザーに設定します。
以下の解決策では、次の条件を前提としています。
- Apache HTTP Server 2.2 以降のバージョンを使用している。
- 複数の VirtualHosts が設定されている。
- 別々のキャッシュが設定された複数の Dispatcher ファームがある。
例:
Apache httpd VirtualHost の設定
NameVirtualHost *:80 <VirtualHost *:80> ServerName www.geometrixx.com ServerAlias *.geometrixx.com DocumentRoot /var/www/html/cache-www-geometrixx-com ... </VirtualHost> <VirtualHost *:80> ServerName www.geometrixx-outdoors.com ServerAlias *.geometrixx-outdoors.com DocumentRoot <Global Doc root>/site2 Include <Configurations specific to site2> </VirtualHost> DocumentRoot /var/www/html/cache-www-geometrixx-outdoors-com
Dispatcher の設定で、ホスト名(virtualhosts)別に異なるサイトを処理する複数のファームが設定されています。
/virtualhosts { "*geometrixx.com*" } /renders { ... } /cache { /docroot "/var/www/html/cache-www-geometrixx-com"
複数のフラッシュエージェントを設定する
Dispatcher ファームの数が 5 個以下の場合は、複数のフラッシュエージェントを設定する方法が簡単です。
-
-
レプリケーション/公開のエージェントの順にクリックします。
-
「編集」をクリックします。
-
エージェントユーザー ID に、このエージェントに関連付けるために後で作成するユーザーの名前を入力します。サイトのホスト名を基にした命名規則を使用できます。例えば、「flush-agent-www-geometrixx-com」です。
-
「拡張」タブを選択します。
-
HTTP ヘッダーで別のヘッダーを追加します。値には「Host: www.geometrixx.com」と入力します。「www.geometrixx.com」は、サイトのいずれかの DNS ホストに変更してください。
-
「OK」をクリックして保存します。
-
http://aem-host:port/useradmin にアクセスし、手順 4 のユーザーを作成します。
-
そのユーザーの「権限設定」タブにアクセスし、参照されているサイトで、エージェントによるフラッシュを許可するすべてのパスに対する読み取り権限を付与します。例えば、/content/geometrixx、/content/dam、/etc、/libs、/apps、/var などとなります。
-
保存します。
-
各パブリッシュインスタンスの他のすべてのサイトについても手順 1 ~ 10 を繰り返します。各パブリッシュインスタンスのサイトごとに、フラッシュエージェントを 1 つずつ作成します。
-
Web サーバーで symlink を使用して共通パスを共有します。例えば、/content/dam、/etc、/libs、/apps、/var の symlink を、共通のキャッシュの場所に設定できます。その後、キャッシュのルートにある /content とすべての要素が、個別にキャッシュされます。/libs フォルダー用のコマンドの例は次のとおりです。
ln -s /var/www/html/cache-www-geometrixx-com/libs /var/www/html/shared-cache
-
以上で特定のサイトのページを有効にすると、フラッシュリクエストが対応するフラッシュエージェントのみに送信されるようになります。