Weiterleiten externen HTTP-Verkehrs an mehrere Computer in meinem Netzwerk

Weiterleiten externen HTTP-Verkehrs an mehrere Computer in meinem Netzwerk

Dies ist offensichtlich möglich, da alle Webfarmen dies tun. Ich bin jedoch keine Webfarm.

Ich verfüge über recht gute technische Kenntnisse, vor allem im Umgang mit Windows, würde hierfür aber gerne eine einfache Linux-Box einrichten.

Im Moment habe ich einen internetfähigen Router, der den Datenverkehr zu einer Maschine über mehrere Ports durchlässt. Das funktioniert gut und ich kann mehrere Websites auf dieser einen Maschine ausführen, ich möchte jedoch den Datenverkehr abfangen und basierend auf dem Domänennamen an verschiedene Maschinen senden können.

Reporting.example.com => PC1
Demos.example.com => PC2
MySite.example.com => PC1
Three.example.com => PC3
(all domain obviously resolve to my single internet facing IP address).

Kann ich einen Router bekommen, der das kann (ich kenne Portweiterleitung usw., aber sie funktionieren nur auf Ports), kann ich eine zwischengeschaltete Linux/XP-Box mit einem Weiterleiter einrichten? Gibt es eine einfache Lösung?

Antwort1

Dies ist nicht der einzige oder beste Weg, aber so würde ich es angehen. Korrigieren Sie mich, wenn ich irgendwelche Fakten in Ihrer Frage falsch verstanden habe.

  1. Der Router hält die WAN-IP. Wenn Ihr Router die Angabe der Zuordnung von Hostnamen zu IP zulässt, können Sie versuchen, dies hinzuzufügen, indem Sie jede Domäne der internen IP Ihres Netzwerks zuordnen.

  2. Wenn der Router das nicht kann, können Sie auf einem System einen Reverse-Proxy einrichten, um den Datenverkehr nach Domänen an Backend-Systeme weiterzuleiten. Dies ist praktisch, da Sie es auch für das Failover verwenden können.

hier ist ein Beispiel für eine Vhost-Konfiguration von Apache als Reverse-Proxy.

ServerName Demos.example.com
ProxyPreserveHost On
ProxyTimeout 5400
ProxyPass / http://LAN_IP1 max=20 ttl=5000 retry=300
ProxyPassReverse / http://LAN_IP1/

PS: Sie brauchen keinen dedizierten Reverse-Proxy-Server, Sie können dafür eines der vorhandenen Systeme verwenden, das eine Domäne lokal bedienen und andere Domänen als Proxy bereitstellen kann. Dieses spezielle System muss dasjenige sein, an das Ihr Router den gesamten Webverkehr weiterleitet.

Antwort2

Vangels Lösung hat super funktioniert, ich habe sie hier für alle anderen erklärt.

Dies muss in die Datei http.conf

<VirtualHost *:80> 
 ServerName Demos.example.com
 ProxyPreserveHost On
 ProxyTimeout 5400
 ProxyPass / http://LAN_IP1 max=20 ttl=5000 retry=300
 ProxyPassReverse / http://LAN_IP1/
</VirtualHost >

Sie müssen außerdem die folgenden Module aktivieren

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

verwandte Informationen