仮想サーバーを使用すると、企業や個人のドメイン名、IP アドレス、および一部のサーバー監視機能を、インストール済みの単一サーバーを使って提供できます。それはユーザーにとって、自分の Web サーバーを所有しているのとほぼ同じです。ただし、そのハードウェアや Web サーバーの保守を提供するのは皆さんです。
すべての仮想サーバーで HTTP リスナーが指定されます。サーバーは新しい要求を受信すると、その要求をどの仮想サーバーに送信するかを、構成された HTTP リスナーに基づいて判定します。
Sun Java System Web Server のサーバーインスタンスは、セキュリティー保護された HTTP リスナー、セキュリティー保護されていない HTTP リスナーのどちらでも、任意の数だけ持つことができます。IP アドレスベースの仮想サーバー、URL ホストベースの仮想サーバーのいずれも作成できます。
どの仮想サーバーも、独自の ACL リスト、独自の mime.types ファイル、および独自の一連の Java Web アプリケーションを持つことができます (ただし、必ずしも持つ必要はない)。
このような設計になっているため、ユーザーは、さまざまなアプリケーション向けに極めて柔軟にサーバーを構成できます。次の例では、Sun Java System Web Server で利用可能な構成のいくつかについて説明します。
Sun Java System Web Server を新規インストールした場合、サーバーインスタンスが 1 つ存在しています。このサーバーインスタンスには HTTP リスナーが 1 つだけ存在しますが、このリスナーは、使用するコンピュータが構成されている任意の IP アドレスを、ポート 80 (またはインストール時に選択されたポート) 上で待機します。
ローカルネットワーク内の何らかの機構により、使用するコンピュータが構成されているアドレスのそれぞれについて、名前とアドレスのマッピングが確立されます。次の例では、コンピュータは 2 つのネットワークインタフェースを持っています。アドレス 127.0.0.1 のループバックインタフェース (ネットワークカードが存在しなくても存在しているインタフェース) と、アドレス 10.0.0.1 の Ethernet インタフェースです。
名前 example.com は DNS 経由で 10.0.0.1 にマップされています。待機ソケットは、そのマシンが構成されている任意のアドレスをポート 80 上で待機するように構成されています (「ANY:80」または「0.0.0.0:80」)。
この構成の場合、次の各場所に接続するとサーバーにアクセスでき、仮想サーバー VS1 のサービスを受けることができます。
http://127.0.0.1/ (example.com 上で起動)
http://localhost/ (example.com 上で起動)
http://example.com/
http://10.0.0.1/
従来型の Web サーバー用途では、この構成を使用します。別の仮想サーバーや HTTP リスナーを追加する必要はありません。
「サーバーの SSL 設定」を参照してください。
Sun Java System Web Server のより複雑な構成の 1 つとして、サーバーがイントラネット配備向けにいくつかの仮想サーバーをホスティングする、というものがあります。たとえば、内部用のサイトが 3 つあり、それらのサイト上で従業員は、ほかのユーザーの電話番号の検索、構内の地図の閲覧、および情報サービス部門への要求の状態追跡を行えるものとします。これまで (この例の場合)、これらのサイトは、名前 phone.example.com、maps.example.com、および is.example.com にマップされた異なる 3 つのコンピュータ上にホスティングされていました。
ハードウェアと管理のオーバーヘッドを最小限に抑えたければ、この 3 つのサイトすべてを、マシン example.com 上に存在する 1 つの Web サーバーに統合化することができます。この設定の実現方法は 2 つあります。URL ホストベースの仮想サーバーを使用する方法と、個別の HTTP リスナーを使用する方法です。どちらにも固有の利点と欠点があります。
URL ホストベースの仮想サーバーを使用したイントラネットホスティング
URL ホストベースの仮想サーバーは、設定は容易ですが、次の欠点があります。
この構成で SSL をサポートするには、ワイルドカード証明書を使用する標準的でない設定が必要となる。
URL ホストベースの仮想サーバーは、旧バージョンの HTTP クライアントでは正しく動作しない
また、アドレスごとに HTTP リスナーが 1 つずつ用意される、IP アドレスベースの構成を設定することも可能です。
個別の HTTP リスナーを使用したイントラネットホスティング
IP アドレスベースの仮想サーバーに対する利点は、次のとおりです。
HTTP/1.1 Host ヘッダーをサポートしない古いクライアントでも正常に動作する。
SSL サポートの提供方法が単純である。
欠点は次のとおりです。
ホストコンピュータの構成 (実際のネットワークインタフェースや仮想ネットワークインタフェースの構成) を変更する必要がある
数千の仮想サーバーを含む構成に拡大することができない
どちらの構成の場合にも、3 つの名前について、名前とアドレスのマッピングを設定する必要があります。IP アドレスベースの構成では、それぞれの名前が異なるアドレスにマップされます。ホストマシンがこれらすべてのアドレスへの接続を受信するように、ホストマシンを設定する必要があります。URL ホストベースの構成では、すべての名前を同じアドレスに、具体的にはマシンがもともと持っていたアドレスに、マップできます。
複数の HTTP リスナーを含む構成を使用すると、パフォーマンスがわずかに向上することがあります。なぜなら、受信した要求の対象となるアドレスをサーバーが調べる必要がないからです。ただし、複数の HTTP リスナーを使用する場合には、追加のアクセプタスレッドが必要となるため、メモリーとスケジューリングに関する別のオーバーヘッドも発生します。
大規模ホスティングとは、低トラフィックの仮想サーバーを多数有効にするような構成のことです。たとえば、低トラフィックの個人のホームページを多数ホスティングする ISP は、このカテゴリに該当します。
仮想サーバーは通常、URL ホストベースとなります。たとえば、ある構成では静的コンテンツのみを有効にし、別の構成では静的コンテンツと CGI を有効にする、といったことが可能になります。
仮想サーバーを作成する必要のある構成の作成/特定が完了しているべきです。
HTTP リスナーの作成/特定が完了しているべきです。
新しい仮想サーバーに対する 1 つ以上のホストの特定が完了しているべきです。
仮想サーバーを追加する必要のある構成を選択します。「構成」タブに表示される構成のリストから、構成を選択できます。
「仮想サーバー」タブ>「新規」ボタンをクリックします。
仮想サーバーの構成手順を案内するポップアップウィザードページが表示されます。このウィザードページから次のタスクを実行します。
この時点でウィザードの概要ページが表示されます。構成を変更するには、「戻る」をクリックして前のページに戻ります。新しい仮想サーバーの構成処理を完了させるには、「完了」をクリックします。
この時点で「結果」ページが表示されます。エラーが表示された場合には、ウィザードの前のページに戻って仮想サーバーを構成し直します。
CLI の使用
CLI 経由で仮想サーバーを追加するには、次のコマンドを実行します。
wadm> create-virtual-server --user=admin --password-file=admin.pwd --host=serverhost --port=8989 --config=config1 --document-root=../docs config1_vs_1 |
CLI リファレンスの create-virtual-server(1) を参照してください。
仮想サーバーの一般設定を構成するには、次のタスクを実行します。
構成を選択します。
構成のリストから構成を選択します。利用可能な構成のリストを取得するには、「構成」タブをクリックします。
仮想サーバーを選択します。
仮想サーバーのリストから仮想サーバーを選択します。選択された構成で利用可能な仮想サーバーを取得するには、「仮想サーバー」タブをクリックします。
「一般」タブをクリックします。次の設定を行います。
有効— 実行時に仮想サーバーを有効にするかどうか。
ドキュメントルート— 仮想サーバーのデータの格納先となる、仮想サーバーのドキュメントルートのパス。これには、展開された Web アプリケーションディレクトリやログファイルが含まれます。
ホスト — 複数の URL ホストをコンマで区切ったものを入力できます。
仮想サーバーを複製するには、次のタスクを実行します。
構成を選択します。
構成のリストから構成を選択します。利用可能な構成のリストを取得するには、「構成」タブをクリックします。
仮想サーバーを選択します。
仮想サーバーのリストから仮想サーバーを選択します。選択された構成で利用可能な仮想サーバーを取得するには、「仮想サーバー」タブをクリックします。
「コピー」ボタンをクリックします。
新しい仮想サーバーの名前を入力します。
CLI の使用
CLI 経由で仮想サーバーを複製するには、次のコマンドを実行します。
wadm> copy-virtual-server --user=admin --password-file=admin.pwd --host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 copiedVs |
copiedVS は新しい仮想サーバーの名前です。
CLI リファレンスの copy-virtual-server(1) を参照してください。
サーバーは、HTTP リスナー経由で HTTP 要求を受け入れたあと、構成された仮想サーバーにその要求を転送します。このページでは、HTTP リスナーを追加および構成できます。
HTTP リスナーは、ポート番号と IP アドレスの一意の組み合わせを持つ必要があります。IPv4 アドレス、IPv6 アドレスのいずれかを使用できます。IP アドレスを「*」に設定すると、そのポート上のすべての IP アドレスに対して待機する HTTP リスナーが作成されます。
受信 HTTP 要求を処理するための、仮想サーバーの新しい HTTP リスナーを作成できます。それには次の手順を実行します。
「構成」タブの下の「仮想サーバー」タブをクリックします。
「HTTP リスナー」サブタブを クリックして、構成された HTTP リスナーのリストを表示します。
「新規」ボタンをクリックします。新しい HTTP リスナーを作成するためのウィザードページがポップアップします。
ウィザードページで次の情報を入力します。
名前 — 新しい HTTP リスナーの名前。
ポート — HTTP リスナーがバインドし、受信 HTTP 要求に対して待機するポート。
IP アドレス — 有効な IPv4 または IPv6 アドレス。「*」は、HTTP リスナーが、構成されたポートのすべての IP アドレスに対して待機することを意味します。
サーバー名 — サーバー名を入力します。例: sales.mycomp.com
デフォルト仮想サーバー — ドロップダウンリストから仮想サーバーを選択します。このアクションにより、この新しい HTTP リスナーが選択された仮想サーバーに関連付けられます。
説明 (省略可能) — HTTP リスナーの簡単な説明を入力します。
CLI の使用
CLI 経由で HTTP リスナーを作成するには、次のコマンドを実行します。
wadm> create-http-listener --user=admin --password-file=admin.pwd --host=serverhost --port=8989 --listener-port=18003 --config=config1 --server-name=config1.com --default-virtual-server-name=config1_vs_1 config1_ls_1 |
CLI リファレンスの create-http-listener(1) を参照してください。
既存の HTTP リスナーの設定を編集できます。それには次のタスクを実行します。
既存の HTTP リスナーの設定を編集するには、あるサーバー構成の「仮想サーバー」タブをクリックします。
「HTTP リスナー」サブタブを クリックして、構成された HTTP リスナーのリストを表示します。
「リスナー名」表列の下で、設定を編集する必要のある HTTP リスナーをクリックします。
HTTP リスナーの一般設定とセキュリティー関連設定の両方を編集できます。
HTTP リスナーの基本設定と詳細設定を編集するには、「一般」タブをクリックします。次のオプションを構成します。
名前 — 新しい HTTP リスナーの名前
ポート — HTTP リスナーがバインドし、受信 HTTP 要求に対して待機するポート。
IP アドレス — 有効な IPv4 または IPv6 アドレス。「*」は、HTTP リスナーが、構成されたポートのすべての IP アドレスに対して待機することを意味します。
サーバー名 — サーバー名を入力します。例: sales.mycomp.com
HTTP リスナーの詳細設定を編集するには、「詳細」セクションの「詳細設定」オプションを選択します。次のオプションを構成します。
アクセプタスレッド — このリスナーが受信した接続を受け付けるための専用スレッドの数。指定可能な値は 1 から 128 までです。
プロトコルファミリ — リスナーが使用するプロトコル。この値は変更しないでください。デフォルトは HTTP です。
待機キューサイズ — オペレーティングシステムの待機キューバックログの最大サイズ。
受信バッファーサイズ — オペレーティングシステムのソケット受信バッファーのサイズ (バイト)。
送信バッファーサイズ — オペレーティングシステムのソケット送信バッファーのサイズ (バイト)。
ブロック入出力 — HTTP リスナーのソケットをブロックモードで動作させるかどうかを決定します。デフォルトでは無効です。