この章では、仮想ターゲットの構成方法について説明します。ドメイン・パーティションまたはリソース・グループを作成する場合、仮想ターゲットは前提条件となります。この章では、適宜追加情報について、Fusion MiddlewareおよびOracle Traffic Directorのドキュメント・セットおよびオンライン・ヘルプを参照します。
この章の内容は次のとおりです。
仮想ターゲットは、ドメイン・レベルとドメイン・パーティションの両方におけるリソース・グループのターゲットを表します。これにより、リソース(1つ以上のホスト名、URI接頭辞、仮想ターゲット自体がターゲット指定される管理対象サーバーまたはクラスタなど)へのアクセス・ポイントを定義します。
仮想ターゲットは、WebLogic Serverにおける仮想ホストと同様です。仮想ターゲットでは、仮想ホストのように、ターゲットごとに個別のHTTPサーバー(Webコンテナ)が提供されます。
仮想ターゲットでは、コンテナが実行中の物理属性からリソース・グループを分離します。
各リソース・グループには、1つ以上の仮想ターゲットが必要です。選択できる仮想ターゲットは、リソース・グループがドメイン・レベルであるか、ドメイン・パーティションに関連付けられているかによって、次のように異なります。
ドメイン・レベルのリソース・グループの場合、使用可能なターゲットとしてパーティションにまだ割り当てられていない、任意の既存の仮想ターゲットを選択できます。
ドメイン・パーティションのリソース・グループの場合、そのパーティションで使用可能な既存の仮想ターゲットのみから選択する必要があります。
仮想ターゲットの使用に関する次のガイドラインを考慮します。
仮想ターゲットは、一度に1つのパーティションのみで使用したり、ドメイン・レベルで使用することができます。仮想ターゲットは、複数のパーティションで共有されたり、パーティションとドメイン・レベルで共有されることはありません。
仮想ターゲットは、パーティション内の多数のリソース・グループでも、ドメイン・レベルの多数のリソース・グループでも使用できます。
1つの仮想ターゲットは、1つのクラスタまたは1つの管理対象サーバーにターゲット指定できます。
多数の仮想ターゲットは、同じクラスタまたは管理対象サーバーにターゲット指定できます。
2つの仮想ターゲットが同じホスト名、URI接頭辞およびポート番号を持つ場合は、異なるクラスタまたは管理対象サーバーにターゲット指定する必要があります。
仮想ターゲットには次のものが含まれます。
ホスト名。この仮想ターゲットがリクエストを処理するホスト名のリスト。指定するホスト名は、次のように、適切なサーバーまたはロード・バランサに解決されるDNSエントリを持っている必要があります。
パーティションへの接続のロード・バランシングにOracle Traffic Director (OTD)を使用していない場合は、WebLogic Serverクラスタまたは管理対象サーバーの実際のホスト名を指定します。
パーティションへの接続のロード・バランシングにOTDを使用している場合は、OTD経由でアプリケーションにアクセスします。仮想ターゲットに指定したホスト名は、OTD管理サーバーの場所に解決される必要があります。
ホスト名を指定しない場合は、すべての受信リクエストに一致するようにホスト名にワイルドカードを使用するのと同等になります。
リソース・グループにアクセスするためにクライアントが使用するホスト名は、仮想ターゲットで指定したホスト名のいずれかと厳密に一致する必要があります。
仮想ターゲットに複数のホスト名を指定できます。確実に一致するように、簡易ホスト名と完全修飾ホスト名の両方を指定すると便利な場合があります。
この仮想ターゲットがリクエストを処理するオプションの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://server.com/partition1
、http://server.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 (OTD)を使用します。
オプションで、既存のチャネルおよびポート(明示的またはオフセット)情報を指定して、仮想ターゲットのパーティション固有のチャネルのための参照として使用できます。
ネットワーク・チャネルは、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
を使用する別の仮想ターゲットを作成する場合は、別のポート・オフセット(または明示的なポート)を使用する必要があり、そのようにしないと、ポートの競合が発生します。
すべての場合について、そのまま使用する明示的ポート値、またはオフセットを指定します。そのようにしない場合、ポートが割り当てられず、チャネルが作成および使用されません。
WLS管理コンソールを使用してチャネルを作成します。WLS管理コンソール・オンライン・ヘルプのカスタム・ネットワーク・チャネルの構成に関する項を参照してください。
注意: ドメイン・パーティションのロード・バランシングにOTDを使用している場合、パーティション・チャネルは無視されます。 |
注意: 仮想ターゲットは、ホスト名: ""、URI接頭辞: /、明示的ポート: 0、ポート・オフセット: 0として構成しないでください。この構成では、仮想ターゲットがデフォルトHTTPサーバー宛てのすべてのリクエストをインターセプトします。この構成は許可されません。 |
仮想ターゲットを作成する主な手順は次のとおりです。
この仮想ターゲットの名前を入力します。
オプションで、この仮想ターゲットのURI接頭辞を入力します。
仮想ターゲットの名前を1つ以上追加します。指定したホスト名は、指定したターゲット・クラスタおよび管理対象サーバーに解決されるか、ロード・バランシングにOTDを使用している場合はOTD管理サーバーに解決される必要があります。
オプションで、「仮想ターゲットでのパーティション・チャネルの使用方法」の説明に従い、この仮想ターゲットに使用するパーティション・チャネルおよびポート(明示的またはオフセット)を指定します。チャネルは、選択したターゲット上に存在し、同じプロトコルを使用して構成されている必要があります。パーティション・チャネルの値を指定する場合は、明示的なポートまたはポート・オフセットのいずれかを指定する必要があります。
注意: ドメイン・パーティションのロード・バランシングにOTDを使用している場合、これらのオプションは無視されます。 |
使用可能なターゲットから1つのターゲットを選択します。単一の管理対象サーバーまたは単一のクラスタを選択できます。
WebLogic Server管理コンソール、WLSTまたはRESTを使用して仮想ターゲットを作成している場合は、追加のHTTP構成オプションを仮想Webサーバーの構成に使用できます。詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプの仮想ターゲットのHTTPの構成に関する項を参照してください。
Fusion Middleware Controlを使用して仮想ターゲットを作成する場合は、オンライン・ヘルプの仮想ターゲットの作成に関する項を参照してください。
次の例の内容は次のとおりです。
ドメイン・パーティションを作成します。
仮想ターゲットを作成します。
仮想ターゲットのホスト名および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)
実行中のパーティションでリソース・グループを実行して、使用中の仮想ターゲットに変更を加えた場合、変更を有効にするにはパーティションを再起動する必要がある場合があります。
仮想ターゲットを管理する主な手順は次のとおりです。
管理する仮想ターゲットを選択します。
この仮想ターゲットのURI接頭辞を入力するか、既存のURI接頭辞を変更します
仮想ターゲットの名前を1つ以上追加します。指定したホスト名は、指定したターゲット・クラスタおよび管理対象サーバーに解決されるか、ロード・バランシングにOTDを使用している場合はOTD管理サーバーに解決される必要があります。
必要に応じて、仮想ターゲットの1つ以上のホスト名を削除します。
オプションで、「仮想ターゲットでのパーティション・チャネルの使用方法」の説明に従い、この仮想ターゲットに使用するパーティション・チャネルおよびポート(明示的またはオフセット)を指定します。チャネルは、選択したターゲット上に存在し、同じプロトコルを使用して構成されている必要があります。パーティション・チャネルの値を指定する場合は、明示的なポートまたはポート・オフセットのいずれかを指定する必要があります。
注意: ドメイン・パーティションのロード・バランシングにOTDを使用している場合、これらのオプションは無視されます。 |
使用可能なターゲットから1つのターゲットを選択します。単一の管理対象サーバーまたは単一のクラスタを選択できます。(特別な理由がないかぎり、通常は、WebLogic管理サーバーは選択しません。)
使用しないターゲットの選択を解除します。
WebLogic Server管理コンソール、WLSTまたはRESTを使用して仮想ターゲットを管理している場合は、追加のHTTP構成オプションを仮想Webサーバーの構成に使用できます。詳細は、『Oracle WebLogic Server Administration Consoleオンラインヘルプ』の仮想ターゲットのHTTPの構成に関する項を参照してください。
実行中のパーティションでリソース・グループを実行して、使用中の仮想ターゲットに変更を加えた場合、変更を有効にするにはパーティションを再起動します。
Fusion Middleware Controlを使用して仮想ターゲットを管理する場合は、オンライン・ヘルプの仮想ターゲットの構成に関する項を参照してください。
パーティション内のリソース・グループが使用中の仮想ターゲットは、削除できません。まずこれをリソース・グループから削除する必要があります。
パーティションで使用中の仮想ターゲットを削除するには、次のようにします。
パーティションを停止します。
そのパーティションのリソース・グループから仮想ターゲットを削除します。
パーティションの使用可能なターゲットのリストから仮想ターゲットを削除します。
仮想ターゲットがパーティションでデフォルトで使用されている場合は、このオプションの選択を解除します。
パーティションを再起動します。
仮想ターゲットを削除します。
Fusion Middleware Controlを使用して仮想ターゲットを削除する場合は、オンライン・ヘルプのパーティションで使用中の仮想ターゲットの削除に関する項を参照してください。
ドメイン・レベルでリソース・グループが使用中の仮想ターゲットは、削除できません。まずこれをリソース・グループから削除する必要があります。
ドメイン・レベルのリソース・グループで使用中の仮想ターゲットを削除するには、次のようにします。
削除する必要がある仮想ターゲットをリソース・グループから削除します。
仮想ターゲットを削除します。
仮想ターゲットを削除する場合は、オンライン・ヘルプのドメイン・レベルのリソース・グループで使用中の仮想ターゲットの削除に関する項を参照してください。
次の例では、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管理サーバーは選択しません。)
この仮想ターゲットを、使用可能なターゲットとしてパーティションに追加します。
リソース・グループを作成します。
仮想ターゲットをリソース・グループに追加します。
変更をアクティブ化します。
パーティションを起動します。
注意: これが本番モードで作成する最初のパーティションの場合は、管理サーバーを再起動する必要があり、その後でパーティションが起動可能になります。 |
ターゲットとしての管理サーバーを削除します。
仮想ターゲットを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()
詳細については、以下の各節を参照してください。
ドメイン・パーティションの作成の詳細は、「ドメイン・パーティションの構成」を参照してください。
ネットワーク・チャネルの詳細は、『Oracle WebLogic Serverサーバー環境の管理』のネットワーク・チャネルの理解に関する項。