同じドメイン上の 2 つの Web アプリケーション

同じドメイン上の 2 つの Web アプリケーション

私は専用のDebian 6に2つの異なるWebアプリケーションをインストールしました。最初のものは/var/www/cast内にあり、割り当てられたURLは`です。

example.example.com/キャスト

`

私はAirtimeと呼ばれる2番目のものをインストールしました。2番目のインストールではインストールパスが提供されなかったため、どこかに自動的にインストールされました。今では最初のものを入力しようとすると、2番目のものが表示されます。

example.example.com/キャスト

それはAirtimeにつながります。

例.例.com

それはそこにもつながります。

これはairtime-vhostファイルのエントリです

<VirtualHost *:80>
      ServerName example.example.com
      #ServerAlias www.example.com

      ServerAdmin [email protected]

      DocumentRoot /usr/share/airtime/public
      DirectoryIndex index.php

      SetEnv APPLICATION_ENV "production"

      <Directory /usr/share/airtime/public>
              Options -Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              Allow from all
      </Directory>
</VirtualHost> 

両方に固有の URL を付与する方法について何かご意見はありますか?

答え1

Airtime には独自の Web サーバーが付属しているようですが、「cast (それが何であれ)」には付属していないようです。これは正しいですか?

とにかく、一般的な問題はさまざまな方法で対処できます。

  • 可能であれば、両方のアプリケーションを同じ Web サーバー内で実行できます。これは、アプリケーションの 1 つが、他のアプリケーションと互換性のない非常に特殊なバージョンの Web サーバー (Airtime 構成ファイルに基づく Apache を想定) に依存している場合にのみ不可能です。ただし、両方のアプリケーションを実行するのに十分な、必要な Apache モジュールをすべて Apache の単一のインスタンスにロードできる場合は、各アプリケーションをドキュメント ルート内の別のパス (例: /var/www/airtime と /var/www/cast) に配置するだけで、「そのまま動作します」。または、/var/www への simlink または Apache 構成ディレクティブを使用して、ファイル システム内の任意のディレクトリをドキュメント ルートにマップできます。

  • 2 つの異なる Web サーバーを異なるポートで実行できます。これにより、少なくとも 1 つのインスタンスの URL が変更され、ドメインの後にポート番号が必要になります (http://example.com:8080/blah:8080ポートです) (1024 より大きく 65000 より小さい値を選択することをお勧めします。また、使用する前に番号を Google で検索して、既に実行しているサービスのよく知られているポートではないことを確認してください)。

  • 2 つの異なる Web サーバーを異なる IP アドレスで実行できます。httpsこの方法では、ポートのデフォルトを 80 (または の場合は 443) に維持できますが、2 つの異なる IP が必要になります。

  • 2 つの異なる Web サーバーを同じ IP アドレスで異なるサブドメインで実行できます。URL 書き換えを使用して、http://airtime.example.comエアタイム アプリケーションへのリクエストとhttp://cast.example.comキャスト アプリケーションからのリクエストを自動的にマッピングできます。

  • 上記のすべては、構成が十分に堅牢であれば、1 つの Web サーバー内で実行することもできます。Apache Web サーバーは、1 つの Web サーバー インスタンス内で上記のすべてを実行できるほど堅牢ですが、一部の選択肢では、より特殊な構成設定が必要になります。1 つの Web サーバー インスタンス内ですべてを実行することを強くお勧めします。初めこの方法はより柔軟で管理が容易であり、さらに、前者の場合はユーザーにとって、後者の場合は管理者にとって物事を複雑にするポートや IP アドレスを気にせずに構成できる可能性が高いためです。

Airtime 構成の問題は、 の vhost になろうとしていることです。*:80つまり、ポート 80 上のサーバーへのすべてのリクエストが、airtime のドキュメント ルート (つまり ) にマップされることになります。 application と application の/usr/share/airtime/public両方を同じ vhost 内に収める必要があります。そうでない場合は、airtime の vhostを から のように制限して、そのサブドメインへのリクエストのみが airtime に渡されるようにします。castairtime*:80airtime.example.com:80

Debian に組み込まれている Apache の設定は/etc/apache2/ディレクトリにあるので、そこに移動して を見てくださいapache.conf。ディレクティブもあることに注意してください<VirtualHost *:80>。つまり、ポート 80 のすべてのリクエストを処理すると主張する仮想ホストを 2 つ持つことはできません。そのうちの 1 つだけが勝つことになります。そこに問題があります。

関連情報