Apache og videresendelse af trafik til anden maskine.
Hej Forum.
Jeg har en apache-webserver på en maskine (maskine1) i mit lokalnet som modtager trafik fra internettet til mit domæne (etellerandetdomænenavn.dk). Nu kunne jeg godt tænke mig at oprette en nyt sub-site (sub.etellerandetdomænenavn.dk) som kører på en ANDEN maskine (maskine2) i min lokalnet.
Hvis man prøver med noget a la i httpd.conf på maskine1
virker det fint, så længe man sidder i samme lokalnet - men når man kommer fra internetsiden går det galt, da det lokale ip-nummer til maskine2 ikke peger på maskine2 længere.
Er der nogen som har et løsningsforslag? eller kan henvise en god HOWTO?
Jeg har en apache-webserver på en maskine (maskine1) i mit lokalnet som modtager trafik fra internettet til mit domæne (etellerandetdomænenavn.dk). Nu kunne jeg godt tænke mig at oprette en nyt sub-site (sub.etellerandetdomænenavn.dk) som kører på en ANDEN maskine (maskine2) i min lokalnet.
Hvis man prøver med noget a la i httpd.conf på maskine1
ServerAlias sub.etellerandetdomænenavn.dk
Redirect permanent / http:///
virker det fint, så længe man sidder i samme lokalnet - men når man kommer fra internetsiden går det galt, da det lokale ip-nummer til maskine2 ikke peger på maskine2 længere.
Er der nogen som har et løsningsforslag? eller kan henvise en god HOWTO?
Kommentarer5
Har du prøvet med i
< head >
< meta HTTP-EQUIV="REFRESH" content="0; url=http://local-IP/index.htm" >
< /head >
Hvor content="0" er den tid der går før man automatisk videresendes, eventuelt suppleret med et link til domain two i < body >.
Du kan bruge mod-proxy til
a2enmod proxy
Derefter kan du lave følgende virtualhost på maskine 1:
< VirtualHost *:80>
ServerName subdomain.domain.com
ProxyPreserveHost on
ProxyPass / http://1.2.3.4:56789/ retry=3
< /VirtualHost>
Og så skal du selvfølgelig nok også lige genstarte for at få config-ædnring og mod-ændring med:
apache2ctl restart
(jeg mener ikke en graceful kan gøre det pga. module-ændring, men jeg kan selvfølgelig tage fejl her)
Hvis maskine 2 har en offentlig IP kan du selvfølgelig også bare sætte den IP til det subdomæne via DNS via A. Det er nok den "rigtige" løsning.
... eller forwarde IP til
Edit.
Jeg synes ikke det er helt klart hvad du vil. Er det kun en redirect, eller vil du sammenlægge de to webservere?
Maskine1 har lokalt
Jeg ønsker at køre to seperate webservere. Maskine1 skal svare på trafik til etellerandetdomænenavn.dk imens maskine2 skal håndtere kald til sub.etellerandetdomænenavn.dk
Da web-trafik bliver routet til maskine1 tænker jeg, at apache på maskine1 skal videresende trafikken til maskine2.
Jeg er ikke en net-haj, men jeg forestiller mig at dette umiddelbart ikke kan lade sig gøre gennem IP-tables, da trafikken til henholdsvis etellerandetdomænenavn.dk (maskine1) og sub.etellerandetdomænenavn.dk (maskine2) har samme destination og portnummer set fra internetsiden.
Løsningsforslag fra #2 giver kun maskine1, når man ser på domænenavn.dk og sub-domænenavn fra internetsiden.
OK på lokalnettet (sendes videre til http://lokal-IP)
Jeg er ikke en net-haj,
Du kan også opsætte en tunnel fra en port på din main host til en lokal IP adresse, men det giver stadigvæk en uri på domæne.tld og ikke sub.domæne.tld.
reverse proxy på sub.domæne.tld har selvfølgeligt et overhead men det er langt mindre resource krævende end at afvikle "script-kode" på serveren. Jeg tør ikke udtale mig om hvor meget større overhead der er med reverse proxy frem for en tunnel.