3 仮想ターゲットの構成
注意:
WebLogic Server Multitenantドメイン・パーティション、リソース・グループ、リソース・グループ・テンプレート、仮想ターゲットおよびリソース消費管理は、WebLogic Server 12.2.1.4.0で非推奨になり、次のリリースで削除されます。この章の内容は次のとおりです。
仮想ターゲットについて
仮想ターゲットは、ドメイン・レベルとドメイン・パーティションの両方におけるリソース・グループのターゲットを表します。これにより、リソース(1つ以上のホスト名、URI接頭辞、仮想ターゲット自体がターゲット指定される管理対象サーバーまたはクラスタなど)へのアクセス・ポイントを定義します。
仮想ターゲットは、Oracle WebLogic Serverにおける仮想ホストと同様です。仮想ターゲットでは、仮想ホストのように、ターゲットごとに個別のHTTPサーバー(Webコンテナ)が提供されます。
仮想ターゲットでは、コンテナが実行中の物理属性からリソース・グループを分離します。
各リソース・グループには、1つ以上の仮想ターゲットが必要です。選択できる仮想ターゲットは、リソース・グループがドメイン・レベルであるか、ドメイン・パーティションに関連付けられているかによって、次のように異なります。
-
ドメイン・レベルのリソース・グループの場合、使用可能なターゲットとしてパーティションにまだ割り当てられていない、任意の既存の仮想ターゲットを選択できます。
-
ドメイン・パーティションのリソース・グループの場合、そのパーティションで使用可能な既存の仮想ターゲットのみから選択する必要があります。
仮想ターゲットの使用に関する次のガイドラインを考慮します。
-
仮想ターゲットは、一度に1つのパーティションのみで使用したり、ドメイン・レベルで使用することができます。仮想ターゲットは、複数のパーティションで共有されたり、パーティションとドメイン・レベルで共有されることはありません。
-
仮想ターゲットは、パーティション内の多数のリソース・グループでも、ドメイン・レベルの多数のリソース・グループでも使用できます。
-
1つの仮想ターゲットは、1つのクラスタまたは1つの管理対象サーバーにターゲット指定できます。
-
多数の仮想ターゲットは、同じクラスタまたは管理対象サーバーにターゲット指定できます。
-
2つの仮想ターゲットが同じホスト名、URI接頭辞およびポート番号を持つ場合は、異なるクラスタまたは管理対象サーバーにターゲット指定する必要があります。
仮想ターゲットのコンポーネント
仮想ターゲットには次のものが含まれます。
-
ホスト名。この仮想ターゲットがリクエストを処理するホスト名のリスト。指定するホスト名は、適切なサーバーまたはロード・バランサに解決されるドメイン・ネーム・システム (DNS)エントリを持っている必要があります。
-
Oracle Traffic Directorを使用してパーティションの接続ロード・バランスを行っていない場合、WebLogic Serverクラスタまたは管理対象サーバーの実際のホスト名を指定します。
-
Oracle Traffic Directorを使用してパーティションの接続のロード・バランスを行っている場合、Oracle Traffic Directorを介してアプリケーションにアクセスします。仮想ターゲットに指定するホスト名は、Oracle Traffic Director管理サーバーの場所に解決される必要があります。
ホスト名を指定しない場合は、すべての着信リクエストに一致するようにホスト名にワイルドカードを使用する場合と同等になります。
リソース・グループにアクセスするためにクライアントが使用するホスト名は、仮想ターゲットで指定したホスト名のいずれかと厳密に一致する必要があります。
仮想ターゲットに複数のホスト名を指定できます。確実に一致するように、簡易ホスト名と完全修飾ホスト名の両方を指定すると便利な場合があります。
-
-
この仮想ターゲットがリクエストを処理するオプションのURI接頭辞。たとえば、ホスト名として
www.example.com
、URI接頭辞としてMyApp
を入力した場合、この仮想ターゲットは、www.example.com/MyApp
へのリクエストは処理しますが、www.example.com
やwww.example.com/foo
へのリクエストは処理しません。この例を拡張し、アプリケーション・ルートが
/app
であるとします。結果として得られるアプリケーションのURLは、www.example.com/MyApp/app
になります。 -
現在のドメイン内のターゲットのリストからのターゲット・クラスタおよび管理対象サーバー。ターゲットは、単一サーバーまたは単一クラスタである必要があります。
仮想ターゲットを使用する場合、ホスト名(http://partition1.com
、http://partition2.com
)によるルーティングまたはURI接頭辞(http://example.com/partition1
、http://example.com/partition2
)によるルーティングという2つの一般的な方法があります。1つの方法を常に使用すると環境の管理がより簡単になりますが、そのようにする必要があるわけではありません。
少なくとも1つのホスト名、URI接頭辞またはポート番号を指定する必要があります。
仮想ターゲットおよびロード・バランシング
仮想ターゲットでは、リクエストが特定のサーバーに到達する方法は決定しません。DNSまたはロード・バランサで、リクエストが特定のサーバー・インスタンスに到達する方法を決定します。仮想ターゲットで使用されるホスト名は、ルーティングを制御しませんが、ルーティングと一貫性がある必要があります。
仮想ターゲットでは、サーバーに入ったリクエストに対する処理を決定します。リクエストは、サーバーに入ると、そのサーバーをターゲットとするすべての仮想ターゲットと照合されます。着信リクエストがいずれかの仮想ターゲットの情報に一致する場合、そのリクエストはその仮想ターゲットを対象としているとみなされます。ホスト名とURI接頭辞の両方が指定されている場合、両方が一致している必要があります。2つの仮想ターゲットが一致する場合、最も長いURI接頭辞が一致するほうがリクエストを受信します。一致しない場合、リクエストはデフォルトのHTTPサーバーに送信されます。
たとえば、ホスト名www.example1.com
、www.example2.com
およびwww.example3.com
を含む仮想ターゲットがあるとします。仮想ターゲットは、cluster1
にターゲット指定されています。www.example1.com
、www.example2.com
およびwww.example3.com
に送信されたリクエストはすべてその仮想ターゲットに一致し、すべてcluster1
に送信されます。
1つのリソース・グループに複数の仮想ターゲットを指定した場合でも、仮想ターゲットの照合は同様に機能します。仮想ターゲット間に暗黙的なロード・バランシングはありません。
たとえば、PartitionA
に、ホスト名がwww.example1.com
で、cluster1
にターゲット指定された仮想ターゲットと、ホスト名がwww.example2.com
で、cluster2
にターゲット指定された2番目の仮想ターゲットがあるとします。www.example1.com
に送信されたリクエストは、その仮想ターゲットにのみ一致し、cluster1
にのみ送信されます。www.example2.com
に送信されたリクエストは、その仮想ターゲットにのみ一致し、cluster2
にのみ送信されます。
ロード・バランシングが必要な場合、Oracle Traffic Directorを使用します。
仮想ターゲットでのパーティション・チャネルの使用方法
オプションで、既存のチャネルおよびポート(明示的またはオフセット)情報を指定して、仮想ターゲットのパーティション固有のチャネルのための参照として使用できます。
ネットワーク・チャネルは、WebLogic Serverに対するネットワーク接続の属性を定義する構成可能なリソースです。WebLogic Serverインスタンスのネットワーク・チャネルは、通信プロトコル、リスニング・アドレス、リスニング・ポートおよびチャネル名という4つの属性の組合せです。『Oracle WebLogic Serverサーバー環境の管理』のネットワーク・チャネルの理解に関する項を参照してください。
チャネルは、選択したターゲット上に存在し、同じプロトコルを使用して構成されている必要があります。「パーティション・チャネル」の値を指定する場合は、明示的なポートまたはポート・オフセットのいずれかを指定する必要があります。
明示的なポートに使用できる値は1から65535で、1から1023 (ウェル・ノウン・ポートまたはシステム・ポート)ではシステム(またはルート)のプロセス権限が必要です。ポートは、別のプロセスによってバインドされていない必要があります。
次に例を示します。
-
ホスト名
myexample.com
およびURI接頭辞/foo
を含む仮想ターゲットを作成します。 -
「パーティション・チャネル」フィールドで、パーティション固有チャネルを作成するための参照として使用する既存のチャネル
Channel-1
を指定します。 -
Channel-1
には、127.0.0.1:7002
のリスニング・アドレスとリスニング・ポート、および127.0.0.1:7002
の外部アドレスとリスニング・ポートがあります。 -
ポート・オフセットとして
5
を指定します。リスニング・ポートの場合は7002 +5
の結果となります。 -
myexample.com
は127.0.0.1
に解決される必要があります。 -
この仮想ターゲットにアクセスするには、
myexample.com:7007/foo
を使用します。 -
同様に
Channel-1
を使用する別の仮想ターゲットを作成する場合は、別のポート・オフセット(または明示的なポート)を使用する必要があり、そのようにしないと、ポートの競合が発生します。 -
すべての場合について、そのまま使用する明示的ポート値、またはポート・オフセットを指定します。そのようにしない場合、ポートが割り当てられず、チャネルが作成および使用されません。
Oracle WebLogic Server管理コンソールを使用して、チャネルを作成します。「WebLogic Server Administration Consoleオンライン・ヘルプ」のカスタム・ネットワーク・チャネルの構成を参照してください。
注意:
Oracle Traffic Directorを使用してドメイン・パーティションのロード・バランシングを行う場合、パーティション・チャネルは無視されます。
パーティションの管理用仮想ターゲットについて
パーティション管理仮想ターゲットは、各パーティションの作成時に自動的に作成される仮想ターゲットであり、ドメインの管理サーバーがその物理ターゲットとして使用されます。
パーティション管理仮想ターゲットには次の設定があります。
-
ホスト名: 空(ワイルドカード)
-
uriPrefix:
/partitions/<partition-name>
注意:
uriPrefixの
/partitions
は別のものに変更できます。この設定はドメイン全体に対して使用されます。変更するには、次のようにします。DomainMBean.setPartitionUriSpace(String uriPrefix);
ただし、可能な場合は、デフォルト設定をそのまま使用することをお薦めします。
-
ターゲット: 管理サーバー
-
その他の設定は管理サーバーのデフォルトHTTPサーバーから継承します。
パーティション管理仮想ターゲットの設定は、パーティションの構成MBeanから取得できます。
WebLogic Scripting Tool (WLST):の使用
serverConfig() partition = cmo.lookupPartition(partitionName) adminVT = partition.getAdminVirtualTarget()
管理仮想ターゲットは、パーティションに対して使用可能なターゲットのリストに自動的に追加されることはありません。パーティション管理者がこれをリソース・グループのターゲット指定に使用できるようにするには、システム管理者がパーティションの使用可能なターゲットとして明示的に追加する必要があります。
管理仮想ターゲットは、その他の仮想ターゲットの場合と同様に、パーティションのターゲット指定に使用できます。ただし、管理仮想ターゲットは読取り専用であり、変更したり削除することはできません。
仮想ターゲットの作成: 主なステップおよび例
仮想ターゲットの作成には、名前の入力、ホスト名の指定、使用可能なターゲットの選択などの一定の必須ステップが含まれます。
注意:
仮想ターゲットは、ホスト名: ""、URI接頭辞: /、明示的ポート: 0、ポート・オフセット: 0
として構成しないでください。この構成では、仮想ターゲットがデフォルトHTTPサーバー宛てのすべてのリクエストをインターセプトします。この構成は許可されません。
仮想ターゲットを作成する主なステップは次のとおりです。
-
この仮想ターゲットの名前を入力します。
-
オプションで、この仮想ターゲットのURI接頭辞を入力します。
-
仮想ターゲットの名前を1つ以上追加します。指定するホスト名は、指定するターゲット・クラスタおよび管理対象サーバーに解決されるか、またはOracle Traffic Directorを使用してロード・バランシングを行う場合はOracle Traffic Director管理サーバーに解決される必要があります。
-
オプションで、「仮想ターゲットでのパーティション・チャネルの使用方法」の説明に従い、この仮想ターゲットに使用するパーティション・チャネルおよびポート(明示的またはオフセット)情報を指定します。チャネルは、選択したターゲット上に存在し、同じプロトコルを使用して構成されている必要があります。「パーティション・チャネル」の値を指定する場合は、明示的なポートまたはポート・オフセットのいずれかを指定する必要があります。
注意:
Oracle Traffic Directorを使用してドメイン・パーティションのロード・バランシングを行う場合、これらのオプションは無視されます。
-
使用可能なターゲットから1つのターゲットを選択します。単一の管理対象サーバーまたは単一のクラスタを選択できます。
-
WebLogic Server管理コンソール、WebLogic Scripting Tool (WLST)またはRepresentational State Transfer (REST)を使用して仮想ターゲットを作成している場合は、追加のHTTP構成オプションを仮想Webサーバーの構成に使用できます。『Oracle WebLogic Server Administration Consoleオンライン・ヘルプ』の「仮想ターゲット用のHTTPの構成」を参照してください。
Fusion Middleware Controlを使用して仮想ターゲットを作成する場合は、オンライン・ヘルプの仮想ターゲットの作成に関する項を参照してください。
仮想ターゲットの作成: WLSTの例
この例では、次の操作を実行しています。
-
ドメイン・パーティションを作成します。
-
仮想ターゲットを作成します。
-
仮想ターゲットのホスト名およびURI接頭辞を設定します。
-
仮想ターゲットを管理サーバーにターゲット設定します。(通常は、WebLogic管理サーバーは選択しません。)
-
この仮想ターゲットを、使用可能なターゲットとしてパーティションに追加します。
-
リソース・グループを作成します。
-
仮想ターゲットをリソース・グループに追加します。
-
変更をアクティブ化します。
-
パーティションを起動します。
注意:
これが本番モードで作成する最初のパーティションの場合は、管理サーバーを再起動する必要があり、その後でパーティションが起動可能になります。
# Create virtual target edit() startEdit() wls:/base_domain/edit/ !> domain=getMBean('/') wls:/base_domain/edit/ !> peppart=domain.createPartition('Pep') wls:/base_domain/edit/ !> vt=domain.createVirtualTarget('TestVT') wls:/base_domain/edit/ !> vt.setHostNames(jarray.array([String('localhost')],String)) wls:/base_domain/edit/ !> vt.setUriPrefix('/foo') wls:/base_domain/edit/ !> tgt=getMBean('/Servers/AdminServer') wls:/base_domain/edit/ !> vt.addTarget(tgt) wls:/base_domain/edit/ !> peppart.addAvailableTarget(vt) wls:/base_domain/edit/ !> peprg=peppart.createResourceGroup('TestRG') wls:/base_domain/edit/ !> peprg.addTarget(vt) wls:/base_domain/edit/ !> activate() wls:/base_domain/edit/ !> startPartitionWait(peppart)
仮想ターゲットの作成: RESTの例
RESTを使用した仮想ターゲットの作成の例は、『RESTful管理サービスによるOracle WebLogic Serverの管理』のパーティションの作成に関する項を参照してください。
特に、新しいパーティションの仮想ターゲットの作成に関する項を参照してください。
仮想ターゲットの管理: 主なステップおよび例
仮想ターゲットを管理するには、URI接頭辞、仮想ターゲットのホスト名、およびそのターゲット・サーバーまたはクラスタを変更します。
実行中のパーティションの実行中のリソース・グループで使用されている仮想ターゲットに変更を加えた場合、変更を有効にするにはパーティションの再起動が必要になることがあります。
仮想ターゲットを管理する主なステップは次のとおりです。
-
管理する仮想ターゲットを選択します。
-
この仮想ターゲットのURI接頭辞を入力するか、既存のURI接頭辞を変更します
-
仮想ターゲットの名前を1つ以上追加します。指定するホスト名は、指定するターゲット・クラスタおよび管理対象サーバーに解決されるか、またはOracle Traffic Directorを使用してロード・バランシングを行う場合はOracle Traffic Director管理サーバーに解決される必要があります。
-
必要に応じて、仮想ターゲットの1つ以上のホスト名を削除します。
-
オプションで、「仮想ターゲットでのパーティション・チャネルの使用方法」の説明に従い、この仮想ターゲットに使用するパーティション・チャネルおよびポート(明示的またはオフセット)情報を指定します。チャネルは、選択したターゲット上に存在し、同じプロトコルを使用して構成されている必要があります。「パーティション・チャネル」の値を指定する場合は、明示的なポートまたはポート・オフセットのいずれかを指定する必要があります。
注意:
Oracle Traffic Directorを使用してドメイン・パーティションのロード・バランシングを行う場合、これらのオプションは無視されます。
-
使用可能なターゲットから1つのターゲットを選択します。単一の管理対象サーバーまたは単一のクラスタを選択できます。(特別な理由がないかぎり、通常は、WebLogic Server管理サーバーは選択しません。)
使用しないターゲットの選択を解除します。
-
WebLogic Server管理コンソール、WLSTまたはRESTを使用して仮想ターゲットを管理している場合は、追加のHTTP構成オプションを仮想Webサーバーの構成に使用できます。詳細は、『Oracle WebLogic Server Administration Consoleオンライン・ヘルプ』の「仮想ターゲット用のHTTPの構成」を参照してください。
-
実行中のパーティションの実行中のリソース・グループで使用されている仮想ターゲットに変更を加えた場合、変更を有効にするにはパーティションを再起動します。
Fusion Middleware Controlを使用して仮想ターゲットを管理する場合は、Fusion Middleware Controlオンライン・ヘルプの仮想ターゲットの構成に関する項を参照してください。
パーティションで使用中の仮想ターゲットの削除
パーティション内のリソース・グループが使用中の仮想ターゲットは、削除できません。まずこれをリソース・グループから削除する必要があります。
パーティションで使用中の仮想ターゲットを削除するには、次のようにします。
- パーティションを停止します。
- そのパーティションのリソース・グループから仮想ターゲットを削除します。
- パーティションの使用可能なターゲットのリストから仮想ターゲットを削除します。
- 仮想ターゲットがパーティションでデフォルトで使用されている場合は、このオプションの選択を解除します。
- パーティションを再起動します。
- 仮想ターゲットを削除します。
Fusion Middleware Controlを使用して仮想ターゲットを削除する場合は、Fusion Middleware Controlオンライン・ヘルプのパーティションで使用中の仮想ターゲットの削除に関する項を参照してください。
ドメイン・レベルでリソース・グループが使用中の仮想ターゲットの削除
ドメイン・レベルでリソース・グループが使用中の仮想ターゲットは、削除できません。まずこれをリソース・グループから削除する必要があります。
ドメイン・レベルのリソース・グループで使用中の仮想ターゲットを削除するには、次のようにします。
- 削除する必要がある仮想ターゲットをリソース・グループから削除します。
- 仮想ターゲットを削除します。
仮想ターゲットを削除する場合は、Fusion Middleware Controlオンライン・ヘルプのドメイン・レベルでリソース・グループが使用中の仮想ターゲットの削除に関する項を参照してください。
仮想ターゲットの管理: WLSTの例
次の例では、URI接頭辞/app
を含む既存の仮想ターゲットTestVT
を変更し、ホスト名をmyhost.example.com
に設定します。
myVT
は、VirtualTargetMBean
のインスタンスです。
cd('/') edit() startEdit() cd('VirtualTargets') cd ('TestVT') cmo.setUriPrefix('/app') cmo.setHostNames(jarray.array([String("myhost.example.com")],String)) activate()
DomainMBean
を使用して、名前で仮想ターゲットをルックアップし、VirtualTargetMBean
を返すこともできます。
domain=getMBean('/') vt=domain.lookupVirtualTarget('TestVT') vt.setUriPrefix('/app')
仮想ターゲットの削除
次の例では、仮想ターゲットTestVT
を削除します。最初に、パーティションPep
の使用可能なターゲットとして仮想ターゲットを削除します。
cd('/') edit() startEdit() domain=getMBean('/') vt=domain.lookupVirtualTarget('TestVT') part=domain.lookupPartition('Pep') part.removeAvailableTarget(vt) domain.destroyVirtualTarget(vt) activate()
仮想ターゲットの再指定
この例では、次の操作を実行しています。
-
ドメイン・パーティションを作成します。
-
仮想ターゲットを作成します。
-
仮想ターゲットのホスト名およびURI接頭辞を設定します。
-
仮想ターゲットを管理サーバーにターゲット設定します。(特別な理由がないかぎり、通常は、WebLogic Server管理サーバーは選択しません。)
-
この仮想ターゲットを、使用可能なターゲットとしてパーティションに追加します。
-
リソース・グループを作成します。
-
仮想ターゲットをリソース・グループに追加します。
-
変更をアクティブ化します。
-
パーティションを起動します。
注意:
これが本番モードで作成する最初のパーティションの場合は、管理サーバーを再起動する必要があり、その後でパーティションが起動可能になります。
-
ターゲットとしての管理サーバーを削除します。
-
仮想ターゲットのターゲットとして
Cluster-0
を再指定します。
# Create Pep partition and ResourceGroup edit() startEdit() wls:/base_domain/edit/ !> domain=getMBean('/') wls:/base_domain/edit/ !> peppart=domain.createPartition('Pep') wls:/base_domain/edit/ !> vt=domain.createVirtualTarget('TestVT') wls:/base_domain/edit/ !> vt.setHostNames(jarray.array([String('localhost')],String)) wls:/base_domain/edit/ !> vt.setUriPrefix('/foo') wls:/base_domain/edit/ !> tgt=getMBean('/Servers/AdminServer') wls:/base_domain/edit/ !> vt.addTarget(tgt) wls:/base_domain/edit/ !> peppart.addAvailableTarget(vt) wls:/base_domain/edit/ !> peprg=peppart.createResourceGroup('TestRG') wls:/base_domain/edit/ !> peprg.addTarget(vt) wls:/base_domain/edit/ !> activate() wls:/base_domain/edit/ !> startPartitionWait(peppart) startEdit() wls:/base_domain/edit/ !> vt.removeTarget(tgt) wls:/base_domain/edit/ !> tgt=getMBean('/Clusters/Cluster-0') wls:/base_domain/edit/ !> vt.addTarget(tgt) wls:/base_domain/edit/ !> activate()
仮想ターゲットの管理: RESTの例
RESTを使用した仮想ターゲットの作成の例は、『RESTful管理サービスによるOracle WebLogic Serverの管理』のパーティションの作成に関する項を参照してください。
特に、新しい仮想ターゲットのデフォルト値の表示に関する項を参照してください。