Przekierowywanie zewnętrznego ruchu HTTP do wielu komputerów w mojej sieci

1

Jest to oczywiście możliwe, ponieważ to, co robią wszystkie farmy internetowe, nie jest farmą internetową.

Mam dość dobre możliwości techniczne przede wszystkim w systemie Windows, ale z przyjemnością ustawiłbym prosty system Linux, aby to osiągnąć.

W tej chwili mam router internetowy, który umożliwia ruch do jednego komputera na różnych portach. Działa to dobrze i mogę uruchamiać wiele stron internetowych na tym jednym komputerze, jednak chciałbym móc przechwytywać ruch i wysyłać do oddzielnych maszyn na podstawie nazwy domeny.

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).

Czy mogę uzyskać router, który to zrobi (wiem o przekierowaniu portów itp., Ale działają tylko na portach), czy mogę skonfigurować pośrednie urządzenie linux / XP z usługą przesyłania dalej? Czy istnieje łatwe rozwiązanie?

Toby Allen
źródło

Odpowiedzi:

3

To nie jedyny sposób lub najlepszy sposób, ale tak właśnie bym to zrobił. Popraw mnie, jeśli źle zrozumiem wszystkie fakty w twoim pytaniu

  1. Router posiada WAN IP. Jeśli router pozwala na określenie nazwy hosta na mapowanie IP, możesz spróbować dodać to, mapując każdą domenę do wewnętrznego IP swojej sieci.

  2. Jeśli router nie może tego zrobić, możesz skonfigurować odwrotne proxy w jednym systemie, aby przekazywać ruch według domen do systemów zaplecza. Jest to przydatne, ponieważ można go również użyć do przełączania awaryjnego.

Oto przykładowa konfiguracja vache apache jako odwrotnego proxy.

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

p.s. Nie musisz mieć dedykowanego odwrotnego serwera proxy, możesz to zrobić za pomocą jednego z istniejących systemów, co może obsługiwać jedną domenę lokalnie i zastępować inne domeny. Ten konkretny system musi być tym, do którego router przekazuje cały ruch internetowy.

Abhishek Dujari
źródło
1

Rozwiązanie Vangels działało świetnie, wyjaśniłem to tutaj dla każdego.

Musi to nastąpić w pliku 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 >

Musisz także włączyć następujące moduły

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
Toby Allen
źródło