Wowzaのバーチャルホスト設定

カテゴリ: Wowza Media Server Proで作るストリーミングサーバー / 公開日: 2011年1月23日(日曜)15:11 / 投稿者: Tom Goodsun

Wowzaは1マシン1ライセンスのサーバーですが、Apacheのように複数のサイトに対応したバーチャルホストを設定することができます。バーチャルホストを知らない人のために説明しておくと、バーチャルホストとは、例えば通常は1サーバーに対しドメインを1つしか割り当てられませんが、バーチャルホストを利用して複数のドメインを設定することができます。だからサーバーAはwww.example1.comのホストであり、www.example2.comのホストでもあるのです。これをWowzaでも実現することができます。

具体的な利用方法としては、バーチャルホストで複数のサイト用のストリーミングを分けて設定し、バーチャルホストごとでログをとったり、接続許可ドメインを設定したりすることができます。では実際に設定していきましょう。その設定手順は以下の通りです。

  1. 構成を考える
  2. バーチャルホストの設定
  3. バーチャルホストごとの設定
  4. バーチャルホストに対する接続設定
  5. 構成の再考

1.構成を考える

まずはバーチャルホストの構成を考えます。管理しやすい方法がもちろんベストです。ということで、/home/ディレクトリにwms-vhostsというディレクトリを作って、この下にvhost1、vhost2・・・とバーチャルホストごとのディレクトリを切っていこうかと思います。ちなみにバーチャルホストは基本的にそれぞれ別のサイト用として割り当てることが前提になってきますので、コンテンツの管理ユーザーはそれぞれのユーザーを作成するか、もしくは1本化するかですが、これは5.の構成の再考で行います。

それでは上記で述べたようにバーチャルホスト用のディレクトリを作成しましょう。作業はrootで行ってください。

# su -
# cd /home/
# mkdir wms-vhosts
# cd wms-vhosts/
# mkdir vhost1/

2.バーチャルホストの設定

User's Guideによれば、Wowzaのバーチャルホスト設定は2種類あります。一つはIPアドレスベース、もう一つはポート番号ベースの設定です。つまり、vhost1やvhost2に固有のIPアドレスやポート番号を割り当てるということです。今回は後者のポート番号ベースの設定を行います。

この方法を選ぶ理由は、IPアドレスという資源は取得状況によってはかなり限られた資源であるため、複数のサーバーを運用していところなどでは現実的な方法とは言いがたいですし、状況によってはネットワーク管理者に依頼して、DNSやIP取得、設定をしてもらわなければなりません。ですが、ポート番号は、そのサーバーで使えるポート番号の制約しかないため、IPアドレスよりも自己完結できる仕組みといえます。ちなみにドメインベースでのバーチャルホストの設定、つまりvhost1.example.comやvhost2.example.comなどのような切り分け方はできません。

事前準備として1.で作成した/home/wms-vhosts/vhost1/の中にapplications、conf、content、logsという4つのディレクトリを作成します。ディレクトリ構成としてはこれが最低限必要なものになります。そして以下の内容に従い、applications、confディレクトリに/usr/local/WowzaMediaServerPro/以下の同じディレクトリから設定ファイルをコピーします。

confディレクトリに必要なファイル

  • Application.xml
  • Authentication.xml
  • MP3Tags.xml
  • MediaCasters.xml
  • MediaReaders.xml
  • MediaWriters.xml
  • RTP.xml
  • Streams.xml
  • VHost.xml
  • log4j.properties
  • rtp.password

上記ファイルで、最低限設定が必要なのはApplication.xml、VHost.xml、log4j.propertiesの3つです。

ファイル名 行番号 変更前 変更後
Applications.xml 29 <StorageDir>${com.wowza.wms.AppHome}/content</StorageDir> 変更なし。コンテンツディレクトリなので適時変更。
VHost.xml 7 <Port>1935</Port> <Port>1936</Port>(ポート番号設定の参考例です。他のとかぶらないように設定してください。)
log4j.properties log4j.appender.serverAccess.File
log4j.appender.serverError.File
log4j.appender.serverStats.File
保存先のパスを記述。この場合/home/wms-vhosts/home/wms-vhosts/vhost1/logs/vhost1_*.logなどのようにする。

ちなみにVHost.xmlのIpAddressノードを設定すると、IPベースの設定が可能になるようです。

applicationsディレクトリはストリームタイプの設定なので、こちらを参考にセットアップします。

3.バーチャルホストごとの設定

ここまでしたのは個々のバーチャルホストの詳細な設定方法でした。あとはコアの設定ファイルにバーチャルホストの設定をして、サーバーを再起動すれば完了です。

/usr/local/WowzaMediaServerPro/conf/VHosts.xmlを開きます。すでにデフォルトのバーチャルホストが設定されていますが、これに設定を書き加えていきます。以下はバーチャルホストを追加した場合の例です。参考にして、設定してみてください。

<Root>
  <VHosts>
    <VHost> 
     <Name>_defaultVHost_</Name>
     <ConfigDir>${com.wowza.wms.ConfigHome}</ConfigDir>
     <ConnectionLimit>0</ConnectionLimit>
    </VHost>
    <VHost> 
      <Name>vhost1</Name>
      <ConfigDir>/home/wms-vhosts/vhost1</ConfigDir>
      <ConnectionLimit>0</ConnectionLimit>
    </VHost>
  </VHosts>
</Root>

VHostノードを追加することで、バーチャルホストを追加します。以下はその説明です。

Name バーチャルホストの名前です。
ConfigDir バーチャルホストの設定ディレクトリまでのパスです。っていうかバーチャルホストのディレクトリを指定します。
ConnectionLimit バーチャルホストの接続数の許容値を設定できます。実はこれがしたくてバーチャルホストを切ることもあります。0を指定すると無制限、数値を設定するとその数だけの接続を許可します。ちなみに接続数が設定値を超えるとサーバーは一方的に接続を切断します。もちろんすでに接続されているものが切断されることはありません。

ここまでの設定が完了したらサーバーを再起動します。

# /etc/init.d/WowzaMediaServerPro restart

4.バーチャルホストに対する接続設定

Wowzaはデフォルトのポートとして1935というのを使っています。JW Playerなどのインターフェースで接続設定をするとき「rtmpe://192.168.1.100」などと記述したかと思います。これだとIPアドレス「192.168.1.100」の1935ポートに接続するということになります。ポート番号1936に設定したバーチャルホストへ接続するには「rtmpe://192.168.1.100:1936」というようにポート番号を明示的に指定してやる必要があります。

5.構成の再考

この状態はバーチャルホストの設定ファイルもメディア用のファイルもすべて同じディレクトリに設定されています。バーチャルホストごとに管理ユーザーを作成する場合にはこれでもかまいませんが、管理ユーザーを一本化する場合にはメディアだけを集めたディレクトリが必要かもしれません。また、ファイルは別サーバーで管理ということも考えられます。そう考えるとcontentディレクトリは必ずしもバーチャルホストのディレクトリ以下になければならないというわけではありません。設定ファイルで、これらのディレクトリはカスタマイズできるので、再考して、お使いの環境に適した設定をするのがベストです。