2008-08-22 12 views
3

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 ich würde gerne sehen, ob ich meine Experimente machen kann, während ich meine anderen Websites in Betrieb halte. Man könnte sagen, dass dies nicht so sehr eine spezifische Software-Frage ist, sondern eine allgemeine Netzwerkfrage.Apache neben einem anderen Webserver ausführen?

  • Ich weiß, dass es möglich ist, zwei Webserver auf verschiedenen Ports auszuführen; aber gibt es eine Möglichkeit, sie so zu konfigurieren, dass sie auf dem gleichen Port laufen können (dh sie beide auf Port 80 laufen)?
  • Die Webserver würden nicht Dateien aus den gleichen Domänen dienen. Zum Beispiel könnte Apache Dokumente von foo.domain.com bereitstellen und der andere Webserver von bar.domain.com.

Ich weiß, dass dies keine ideale Konfiguration ist. Ich würde einfach gerne sehen, ob es gemacht werden kann, bevor ich in das Kaninchenloch sprinte. :)

Antwort

7

Sie können nicht zwei Prozesse an den gleichen Port an der gleichen IP-Adresse gebunden haben. Sie können der Box eine weitere IP-Adresse hinzufügen und jedem Server einen zuhören lassen.

Eine andere Möglichkeit besteht darin, einen Server an den anderen zu übergeben. Mit Apache, könnten Sie so etwas wie:

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 ist, aber man kann immer die ProxyPass documentation überprüfen. Denken Sie jedoch daran, dass die Anwendung, für die ein Proxy erstellt wurde, 127.0.0.1 in ihren Protokollen anstelle der IP-Adresse des Anforderers erhält. Einige Webserver (Apache tut dies mit mod_rpaf) kann den X-Forwarded-For-Header anstelle der falschen IP-Adresse ersetzen. Möglicherweise hat CherryPy das?

0

Ihre beste Wette wäre Apache httpd vor Port 80 setzen und Relais-Anfragen für andere Server über Apache mit Hilfe von Modulen. Das bekannteste Szenario wäre Tomcat hinter Apache, wo Sie sowohl PHP- als auch JSP-Anwendungen ausführen können.

Ich bin nicht vertraut mit CherryPy, also kann ich nur vorschlagen, dass Sie nach einem Apache-Modul für CherryPy suchen.

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

0

Alternativ zu Ishmaeel die richtige Antwort, wenn Sie einen Server mit zwei Netzwerkkarten haben, können Sie jeden Server Antwort Anfragen an verschiedene IP-Adressen haben.

Verwandte Themen