Zwei Webanwendungen in derselben Domäne

Zwei Webanwendungen in derselben Domäne

Ich habe 2 verschiedene Webanwendungen auf meinem dedizierten Debian 6 installiert. Die erste befindet sich in /var/www/cast und die zugewiesene URL lautet `

beispiel.example.com/cast

`

Ich habe die zweite installiert, die Airtime heißt. Die zweite Installation bot keinen Installationspfad an, also wurde sie automatisch irgendwo installiert. Jetzt, wenn ich versuche, die erste einzugeben, bekomme ich die zweite. Wenn ich es versuche

beispiel.example.com/cast

es führt zu Airtime. Wenn ich gehe zu

beispiel.beispiel.com

es führte auch dorthin..

Dies sind die Einträge in der Datei 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> 

Irgendwelche Ideen, wie ich ihnen beiden eine eindeutige URL geben kann?

Antwort1

Es klingt so, als ob Airtime über einen eigenen Webserver verfügt, „cast“ (was auch immer das ist) jedoch nicht. Ist das richtig?

Wie dem auch sei, das allgemeine Problem kann auf viele Arten gelöst werden:

  • Sie können beide Anwendungen, wenn möglich, auf demselben Webserver ausführen. Dies wäre nur dann nicht möglich, wenn eine der Anwendungen von einer sehr spezifischen Version des Webservers abhängt (vorausgesetzt, Apache basiert auf der Airtime-Konfigurationsdatei), die mit der anderen Anwendung nicht kompatibel ist. Wenn Sie jedoch alle erforderlichen Apache-Module in eine einzige Instanz von Apache laden können, die ausreicht, um beide Apps auszuführen, müssen Sie jede Anwendung nur in einem separaten Pfad innerhalb des Dokumentstamms ablegen, z. B. /var/www/airtime und /var/www/cast, und es wird „einfach funktionieren“. Alternativ können Sie jedes Verzeichnis im Dateisystem dem Dokumentstamm zuordnen, entweder durch Simlinking in /var/www oder durch Apache-Konfigurationsanweisungen.

  • Sie können zwei verschiedene Webserver betreiben, diese aber auf unterschiedlichen Ports ausführen. Dadurch wird die URL zu mindestens einer der Instanzen so geändert, dass nach der Domäne eine Portnummer erforderlich ist, z. B. http://example.com:8080/blahwo :8080der Port ist (ich empfehle, einen Wert größer als 1024, aber kleiner als 65000 zu wählen und die Nummer vor der Verwendung zu googeln, um sicherzustellen, dass es sich nicht um einen bekannten Port für einen Dienst handelt, den Sie bereits ausführen).

  • Sie können zwei verschiedene Webserver betreiben, diese aber unter unterschiedlichen IP-Adressen ausführen. Sie können den Port httpsauf diese Weise standardmäßig bei 80 (oder 443 für ) belassen, aber Sie benötigen dann zwei verschiedene IPs.

  • Sie können zwei verschiedene Webserver betreiben, diese aber unter derselben IP-Adresse, aber auf unterschiedlichen Subdomänen ausführen. Anschließend können Sie URL-Rewriting verwenden, um Anfragen automatisch http://airtime.example.comder Airtime-Anwendung und von http://cast.example.comder Cast-Anwendung zuzuordnen.

  • All das oben Genannte können Sie sogar innerhalb eines Webservers ausführen, wenn die Konfiguration robust genug ist – und der Apache-Webserver ist robust genug, um all das oben Genannte innerhalb einer Webserverinstanz auszuführen, obwohl Sie für einige der Auswahlmöglichkeiten exotischere Konfigurationseinstellungen benötigen. Beachten Sie, dass ich dringend empfehle, alles innerhalb einer Webserverinstanz auszuführen.Erste, weil diese Methode flexibler und einfacher zu verwalten ist. Außerdem können Sie die Konfiguration wahrscheinlich durchführen, ohne sich um Ports oder IP-Adressen kümmern zu müssen, die im ersten Fall die Dinge für Ihre Benutzer und im zweiten Fall für Sie komplizieren.

Das Problem mit der Airtime-Konfiguration besteht darin, dass sie versucht, ein virtueller Host für zu sein, *:80was bedeutet, dass jede Anfrage an Ihren Server auf Port 80 in das Dokumentenstammverzeichnis für Airtime abgebildet wird, d. h /usr/share/airtime/public. Sie müssen sowohl die castAnwendung als auch die airtimeAnwendung innerhalb desselben virtuellen Hosts erhalten oder den virtuellen Host von Airtime von *:80auf etwas wie beschränken airtime.example.com:80, sodass nur Anfragen an diese Subdomäne an Airtime weitergeleitet werden.

Ihre Apache-Konfiguration, die in Debian integriert ist, befindet sich im /etc/apache2/Verzeichnis . Gehen Sie also dorthin und sehen Sie sich das an apache.conf. Beachten Sie, dass es auch eine <VirtualHost *:80>Anweisung enthält. Nun, Sie können nicht zwei virtuelle Hosts haben, die behaupten, alle Anfragen auf Port 80 zu verarbeiten. Nur einer von ihnen kann gewinnen. Darin liegt das Problem.

verwandte Informationen