Frage

Hat jemand Erfolg gehabt, zwei verschiedene Webserver – wie Apache und CherryPy – nebeneinander auf demselben Rechner laufen zu lassen?Ich experimentiere gerade mit anderen Webservern und würde gerne sehen, ob ich meine Experimente durchführen kann, während meine anderen Websites weiterhin betriebsbereit bleiben.Man könnte sagen, dass dies weniger eine spezifische Softwarefrage als vielmehr eine allgemeine Netzwerkfrage ist.

  • Ich weiß, dass es möglich ist, zwei Webserver auf unterschiedlichen Ports zu betreiben;Aber gibt es eine Möglichkeit, sie so zu konfigurieren, dass sie auf dem ausgeführt werden können? gleichen Port (dh beide laufen auf Port 80)?
  • Die Webserver würden nicht Dateien aus denselben Domänen bereitstellen.Beispielsweise könnte Apache Dokumente von foo.domain.com bereitstellen, und der andere Webserver würde von bar.domain.com aus bereitstellen.

Ich weiß, dass dies keine ideale Konfiguration ist.Ich würde nur gerne sehen, ob es möglich ist, bevor ich in den Kaninchenbau sprinte.:) :)

War es hilfreich?

Lösung

Es ist nicht möglich, dass zwei Prozesse an denselben Port und dieselbe IP-Adresse gebunden sind.Sie können der Box eine weitere IP-Adresse hinzufügen und jeden Server eine überwachen lassen.

Eine andere Möglichkeit besteht darin, einen Server per Proxy an den anderen weiterzuleiten.Mit Apache könnten Sie so etwas tun:

NameVirtualHost *
<virtualhost *>
  ServerName other.site.com

  # assumes CherryPy listens on port 8080
  ProxyPass / http://127.0.0.1:8080/
  ProxyPassReverse / http://127.0.0.1:8080/
</Virtualhost>

Das ist ein ziemlich schnelles Beispiel, aber Sie können es jederzeit überprüfen ProxyPass-Dokumentation.Beachten Sie jedoch, dass die Anwendung, an die ein Proxy weitergeleitet wird, in ihren Protokollen 127.0.0.1 anstelle der IP-Adresse des Anforderers erhält.Einige Webserver (Apache tun dies mit mod_rpaf) kann den X-Forwarded-For-Header anstelle der falschen IP-Adresse ersetzen.Möglicherweise hat CherryPy das?

Andere Tipps

Am besten setzen Sie Apache httpd vor Port 80 und leiten Anfragen für andere Server über Apache weiter, indem Sie Module verwenden.Das beliebteste Szenario wäre Tomcat hinter Apache, wo Sie sowohl PHP- als auch JSP-Anwendungen ausführen können.

Da ich mit CherryPy nicht vertraut bin, kann ich Ihnen nur empfehlen, nach einem Apache-Modul für CherryPy zu suchen.

Bearbeiten:Das sieht vielversprechend aus: http://tools.cherrypy.org/wiki/BehindApache

Alternativ zu Ishmaeels richtiger Antwort: Wenn Sie einen Server mit zwei Netzwerkkarten haben, könnte jeder Server Anfragen unter unterschiedlichen IP-Adressen beantworten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top