クラスタ環境としてLiferay DXPを実行していて 、リモートステージングを使用したい場合は、適切な設定をする必要があります。このチュートリアルでは、クラスタ環境のシナリオ例でリモートステージングを設定する方法を説明します。例の環境では、以下が備わっていると仮定します。
- データベースインスタンス設定およびクラスタノードとは異なるファイルリポジトリを持つステージングインスタンス。
- クラスターのノード間のトラフィックフロー管理を担当するバランサー。
- 2つのLiferayアプリケーションサーバー(たとえば、App Server 1とApp Server 2)を呼び出す、同じデータベースに接続されている2つのノード。
以下の手順でも、Web層、アプリケーション層、およびクラスタ環境がすでに設定されていることを前提としています。特定の設定で作業するには、このチュートリアルの設定を調整する必要があります。
Let’s begin!
-
ノードとステージングサーバー間の通信を保護する必要があります。アプリケーションサーバーとステージングサーバーの両方の
portal-ext.properties
ファイルに、次のプロパティを追加し ます。tunneling.servlet.shared.secret=[secret]
この秘密鍵は、設定されたポータルサーバへの他のポータルアクセスを拒否します。16進エンコーディングを使用して秘密鍵を設定したい場合は、
portal-ext.properties
ファイルに次のプロパティも設定してください。tunneling.servlet.shared.secret.hex=true
-
アプリケーションサーバーとステージングサーバーの設定されたIP間の接続を許可する必要があります。リモートLiferayサーバーの
portal-ext.properties
ファイルを開き 、以下のプロパティを追加します。tunnel.servlet.hosts.allowed=127.0.0.1,SERVER_IP,[STAGING_IP] tunnel.servlet.https.required=false
この
[STAGING_IP]
変数は、ステージングサーバーのIPアドレスに置き換える必要があります。SERVER_IP定数
は、このプロパティに設定されたままにすることができます。LiferayサーバーのIPアドレスに自動的に置き換えられます。 -
IPv6アドレスを検証する場合は、IPv4アドレスの使用を強制しないようにアプリケーションサーバーのJVMを設定する必要があります。たとえば、Tomcatを使用している場合は、
$TOMCAT_HOME\bin\setenv.[bat|sh]
ファイルに次の属性を追加し ます。`-Djava.net.preferIPv4Stack=false`
-
新しいプロパティを有効にするために両方のアプリサーバーを再起動します。
-
ノードのアプリケーションサーバー用のTunnelAuthVerifierプロパティを設定します。 これを行うには2つの方法があります。
-
**
.configファイル
の使用(推奨):**いずれかのノードのLiferay DXPインスタンスの$LIFERAY_HOME/osgi/configs
フォルダーに、(必要に応じて)com.liferay.portal.security.auth.verifier.tunnel.module.configuration.TunnelAuthVerifierConfiguration-default.config
ファイルを作成し、 下記のプロパティを挿入します。.config
ファイルを1つ作成すると、すべてのクラスタノードで同じように設定されます。.config
ファイルの詳細については、Understanding System Configuration Filesの記事を参照してください。enabled=true hostsAllowed=127.0.0.1,SERVER_IP,STAGING_IP serviceAccessPolicyName=SYSTEM_USER_PASSWORD urlsIncludes=/api/liferay/do
-
システム設定の経由:[コントロールパネル] → [設定] → [システム設定] → [Foundation] → [>Tunnel Auth Verifiers]へ移動します。/api/liferay/do設定のエントリをクリックし、ステージングIPアドレスを許可されたホストのフィールドに追加します。TunnelAuthVerifierをこのように設定することを選択した場合は、すべてのノード(たとえば、App Server 1とApp Server 2)に対してこれを実行する必要があります。
-
-
ステージングインスタンスで、製品メニューのサイト管理部分に移動し、[公開] → *[ステージング]の順に選択します。それから、[リモートライブ]*を選択します。
-
リモートホスト/ IPフィールドに、Web層のバランサーのIPを入力します。 バランサーのIPを使用してステージングインスタンスを設定することで、ステージングからライブまで、公開時の環境の可用性を確保できます。
-
リモートポートフィールドに、バランサーが動作しているポートを入力します。
-
アプリケーションサーバーのリモートサイトIDをリモートサイトIDフィールドに挿入します。 すべてのアプリケーションサーバーのサイトIDは同じです。同じデータベースで設定されており、ノード間で共有されているためです。
製品メニューのサイト管理部分に移動し、[設定] → *[サイト設定]*を選択してサイトIDを見つけます。
-
リモートライブ設定を保存します。
これで、クラスタ環境でのリモートステージングが設定できました。