Wie leite ich Webanforderungen abhängig von der Domäne in der URL in mein privates Netzwerk weiter?

Wie leite ich Webanforderungen abhängig von der Domäne in der URL in mein privates Netzwerk weiter?

Szenario:

Aufgrund der begrenzten Anzahl von IPs werden mehrere Domänen in dieselbe IP-Adresse aufgelöst. Diese Domänen laufen jedoch möglicherweise nicht alle auf demselben Webserver, derselben VM oder sogar derselben dedizierten Maschine. Daher möchte ich die Domänen am Eintrittspunkt in das private Netzwerk an den richtigen Ort weiterleiten, sofern die Domäne in der URL enthalten ist.

Wie kann ich das machen?

Antwort1

Die meisten Router/Firewalls ermöglichen die Umleitung des Datenverkehrs basierend auf einem bestimmten Port. Beispielsweise wird der gesamte SMTP-Datenverkehr (Port 25) an 192.168.1.1 umgeleitet.

Wenn Sie jedoch mehrere Server haben, um Ihren Datenverkehr abzuwickeln (1 Server pro Domäne), müssen Sie so etwas wie einen Reverse-Proxy installieren (nginxunterstützt dies für HTTP, IMAP, POP3). Beispielsweise wird der gesamte Datenverkehr an Port 80 umgeleitet, auf 192.168.1.2dem nginx läuft, und wird je nach Hostname entweder zu localhostoder umgeleitet 192.168.1.4.

Antwort2

Ich bin mir nicht sicher, ob ich Ihre Frage richtig verstehe. Wenn ja, laufen bei Ihnen mehrere Rechner als HTTP-Server hinter NAT. Wenn eine Anfrage eingeht, möchten Sie sie doch an einen Ihrer Server weiterleiten, oder?

Wenn Sie Apache und mod_rewrite verwenden, können Sie es möglicherweise folgendermaßen abrufen:

  1. http://www.linuxquestions.org/questions/linux-networking-3/apache-forward-request-to-another-box-264864/

  2. http://www.sematopia.com/2007/09/apache-forwarding-requests-to-another-server/

Prost.

Antwort3

Ich habe etwas Ähnliches gemacht mit demProxyPassDirektive unter mod_proxy in Apache.

Verwenden Sie zunächstNamensbasiertes virtuelles Hostingum zuzulassen, dass verschiedene Domänen unterschiedliche Sites mit derselben IP hosten, benötigen Sie für die Domänen, die mit einem internen Webserver verknüpft sind, eine Konfiguration wie die folgende:

# Within your VirtualHost definition
ServerName somedomain.com
ProxyPass / http://10.0.1.42/
ProxyPassReverse / http://10.0.1.42/

Dies führt dazu, dass alle Anfragen http://somedomain.comtransparent an eine interne Site weitergeleitet werden, die auf gehostet wird http://10.0.1.42.

HTH

Antwort4

Ich habe vor einiger Zeit nach dem gleichen gesucht. Bin nie dazu gekommen, es zu tun, aber hier ist, was meiner Meinung nach funktionieren könnte.

Verwenden Sie das mod_proxy-Modul und verwenden Sie die noproxyDirektive.

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#noproxy

verwandte Informationen