domain routing

Windows, Android, iOS, Linux, Chrome OS, ...
Plaats reactie
gast

Een tijd geleden las ik in een tijdschrift dat er een tool bestaat om meerdere domeinen onder een IP adres te hangen. De tool draait op een gateway PC die de aanvragen naar de juiste achterliggende servers stuurt.

Alle domeinen (www.aaa.com, www.bbb.com, etc) verwijzen naar hetzelfde IP adres doch worden daar via de tool op een gateway PC omgeleid naar de juiste webserver in het LAN.

Ik wil dus dergelijke opstelling waarbij de "router" op een toestel draait (die naar het WAN adres luistert) en elke webserver (LAN) zijn eigen toestel heeft.

Kent iemand deze of andere tools om dit te realiseren?
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Praat je nu in een windows of een unix-omgeving?

Wat jij nu benoemt heet trouwens "virtual servers" ;)
gast

Hmmm... OK, geen domeinen dan :?

Het tooltje was voor Windows maar ik zou liever een Linux oplossing hebben.
gast

niet al teveel antwoorden op deze vraag...
te lastig :lol:

Heb al iets gevonden: octagate
Wel nog een beetje duur!
Limburg
Elite Poster
Elite Poster
Berichten: 1636
Lid geworden op: 28 okt 2003, 14:40
Locatie: N.O.Limburg
Uitgedeelde bedankjes: 27 keer
Bedankt: 4 keer

gast schreef:niet al teveel antwoorden op deze vraag...
te lastig :lol:

Heb al iets gevonden: octagate
Wel nog een beetje duur!


Waarom wil je ook apparte router en servers?
Als je alles op 1 (web)server (linux of windows) stopt kun je het oplossen met een perl scriptje.
gast

de configuratie die ik wil:

-> gateway PC die achter de router zit en die luistert naar het WAN IP adres W.X.Y.Z
-> verschillende servers (www.server1.com, www.server2.com) die verwijzen naar hetzelfde WAN IP adres W.X.Y.Z
-> als er een vraag voor www.server1.com op de gateway PC komt dan zal deze alle verkeer doorgeven aan een ander toestel waarop een Apache server draait en www.server1.com bedient

Het zijn dus allemaal andere PC's...
Ik heb heel wat gevonden onder loadballancing, maar dat is dan om alle verkeer van www.server1.com over verschillende servers uit te smeren...
Arrigi
Elite Poster
Elite Poster
Berichten: 824
Lid geworden op: 05 okt 2003, 23:00
Locatie: Hoogstraten
Contacteer:

Gebruik dan verschillende poorten en verwijs die door naar verschillende pc's, die uiteraard luisteren op de verschillende poorten :)
gast

zou eenvoudig zijn (en kan via rinetd) maar zou impliceren dat men de servers moet aanspreken als www.server1.com www.server2.com:81

Niet echt een gebruiksvriendelijke oplossing! Daarnaast zou er een probleem ontstaan met bijvoorbeeld https...

Is er echt niets beter?
gimic
Premium Member
Premium Member
Berichten: 464
Lid geworden op: 22 mei 2003, 23:48
Uitgedeelde bedankjes: 7 keer
Bedankt: 13 keer

is dit niet gewoon het principe van een dns server dat je moet toepassen? als je een dns server opzet die de juiste namen resolved en met nat kun je de sharing doen. of ben ik hier helemaal de mist in aan het gaan?

Greetz
Gimic
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

Denk zelfs dat je dit apache/proxy kan oplossen
gast

Ja, het lijkt me ook het principe van een DNS te zijn doch in de praktijk zal het toch anders geimplementeerd moeten zijn denk ik.

Wat betreft de Apache aanpak. Dat kan: je draait een webserver op een PC en stuurt door naar andere servers op basis van de gevraagde URL. Toch denk ik dat dit niet de meest efficiente oplossing is.

Er zou een soort switch moeten bestaan (en dan liefst nog een die meerdere protocollen ondersteunt) die schakelt naar achterliggende servers.
Limburg
Elite Poster
Elite Poster
Berichten: 1636
Lid geworden op: 28 okt 2003, 14:40
Locatie: N.O.Limburg
Uitgedeelde bedankjes: 27 keer
Bedankt: 4 keer

Al eerder schreef ik,
Limburg schreef:Waarom wil je ook apparte router en servers?
Als je alles op 1 (web)server (linux of windows) stopt kun je het oplossen met een perl scriptje.

Dat scriptje vindt je op
http://www.scriptsolutions.com/programs/free/domaindirector/

In jouw geval kun je in de machine die jij "gateway" noemt dit scriptje draaien, dit mag onder Linux of Windows zijn, en kun je in HTTP de aanroeper doorsturen naar de betreffende PC met het betreffende domain.
Eventueel frames toepassen om de adresregel te onderdrukken.

Voor andere toepassingen dan http kun je dit vergeten omdat http bij het aanroepen keurig het gewenste url meestuurt, die info wordt door het script gebruikt.
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

Limburg schreef:Al eerder schreef ik,
Limburg schreef:Waarom wil je ook apparte router en servers?
Als je alles op 1 (web)server (linux of windows) stopt kun je het oplossen met een perl scriptje.

Dat scriptje vindt je op
http://www.scriptsolutions.com/programs/free/domaindirector/

In jouw geval kun je in de machine die jij "gateway" noemt dit scriptje draaien, dit mag onder Linux of Windows zijn, en kun je in HTTP de aanroeper doorsturen naar de betreffende PC met het betreffende domain.
Eventueel frames toepassen om de adresregel te onderdrukken.

Voor andere toepassingen dan http kun je dit vergeten omdat http bij het aanroepen keurig het gewenste url meestuurt, die info wordt door het script gebruikt.


Dit is toch een ietwat belachelijke oplossing daar je dan op apache beter Virtualhost kan gebruiken.
Limburg
Elite Poster
Elite Poster
Berichten: 1636
Lid geworden op: 28 okt 2003, 14:40
Locatie: N.O.Limburg
Uitgedeelde bedankjes: 27 keer
Bedankt: 4 keer

airzimmy schreef:Dit is toch een ietwat belachelijke oplossing daar je dan op apache beter Virtualhost kan gebruiken.


In feite doet dat scriptje hetzelfde en is niet veel meer werk dan Virtualhost instellen wanneer je toch al Perl hebt draaien.
Niet iedereen heeft Apache draaien.

Het wordt alleen een kind met een waterhoofd doordat de vragensteller 'gast' meerdere pc's als server wil gebruiken.
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

Limburg schreef:Het wordt alleen een kind met een waterhoofd doordat de vragensteller 'gast' meerdere pc's als server wil gebruiken.


Hij zal wel een reden hebben om het zo te doen ....
gast

Klopt dat er een reden is.

Uiteraard kun je een redirect scriptje gebruiken maar dan komt alles bij dezelfde Apache server aan die het vervolgens door moet sturen. Als je het verschil tussen een "scriptje" en wat ik vraag wil zien dan moet je eens naar octagate.com gaan.

De reden voor de verschillende PC's is dat een toepassing enkel op een Linux server draait (omdat modules als PDL voor SVD berekeningen gewoon beter draaien onder de Linux versie dan de Windows port) terwijl andere gebruik maken van een server onder Windows. Uiteraard valt een en ander te porten maar dan is (a) de port niet altijd even goed en (b) wordt de load voor een server te hoog.

Na uitvoerig zoeken en lezen van de antwoorden op dit forum moet ik besluiten dat er geen betere oplossing bestaat dan octagate. Ik zag een paar Linux oplossingen voor "load balancing" maar daar wordt je niet goed van wat betreft de installatie instructies: allemaal losse en appart te configureren stukjes software waarvan het nog niet evident is dat ze samen werken!

Het ziet ernaar uit dat het topic gesloten is: verder dan een "redirect scriptje" zijn we niet gekomen! Thanks anyway...
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

allé joh niet zo snel de commerciele toer opgaan.

Ik ben er nog steeds van overtuigd dat een proxy dit werk kan doen, zowel apache (met reverse proxy config) als squid (ook als reverse proxy uiteraard) kunnen dit werk oplossen.

effe nog een google hit (dat het hier op freebsd wordt gedaan is bijzaak):
http://www.engelschall.com/pw/wt/loadba ... ticle.html
gast

airzimmy: je hebt gelijk!

Ik ben wat aan het zoeken gegaan en heb een stukje Java code waarmee ik HTTP headers kan opvangen en analyseren. Volgende stap is het redirecten (herschrijven van header?) op basis van de Host waarde, etc.

Enkel het binnenkomend verkeer zal ik op die manier routen, voor uitgaand verkeer kan de webserver zelf naar buiten.

Nog een beetje spelen en ik heb een eerste versie van een HTTP switchboard...
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

En zo onstaan open source projecten ;)

Nu nog nagaan of octagate geen patenten heeft die jij mogelijk zou kunnen schenden ;)
Gast

gast schreef:Ik ben wat aan het zoeken gegaan en heb een stukje Java code waarmee ik HTTP headers kan opvangen en analyseren. Volgende stap is het redirecten (herschrijven van header?) op basis van de Host waarde, etc....
Wat is nou het verschil tussen je 'java code' en het .cgi server script wat ik eerder aanhaalde?

Dat doet exact hetzelfde en is ook aan te passen:
stukje code:
my ( $match, $server ) = ( 0, undef );

( $server = lc( $ENV{'HTTP_HOST'} ) ) =~ s/^www\.//;

$server = "www.$server" if ($server =~ tr/\.// == 1);

for my $domain( keys %domains ){

if ( lc $domain eq $server ){
$match = 1;

if ($domains{$server} =~ m|http://|){
fetch_page( $domains{$server} );
}
else {
fetch_page( "http://$server/$domains{$server}" );
}
}
}

unless ( $match == 1 ){

my $url = "http://$server/$mainpage";

if ( $wildcards && $server !~ /^www\./ && $server !~ /^(\d{1,3}\.){3}\d{1,3}$/ ){
my @domain = split( /\./, $server );
splice ( @domain, -2 ); # throw away first and second levels of domain
my $dir = join( '/', reverse @domain ) ;
$url = "http://$server/$dir/";
}

fetch_page( $url );

}
Limburg
Elite Poster
Elite Poster
Berichten: 1636
Lid geworden op: 28 okt 2003, 14:40
Locatie: N.O.Limburg
Uitgedeelde bedankjes: 27 keer
Bedankt: 4 keer

Dit hierboven was van mij. :?
Laatst gewijzigd door Limburg 29 jul 2004, 12:40, in totaal 1 gewijzigd.
airzimmy
Erelid
Erelid
Berichten: 1047
Lid geworden op: 19 sep 2002, 14:01
Contacteer:

Ik gok hier maar even maar vermoed dat een cgi-script (en de java app afh van hoe het geschreven wordt) qua load zwaarder zal uitvallen op je server dan een proxy. Alle opties zouden eigenlijk getest moeten worden, natuurlijk afhankelijk van hoeveel tijd je hieraan kan geven.

Om je load te testen vanop een unix machine kan je http_load gebruiken, werkt heel goed (niet vergeten dat je client machine(s) je server zullen moeten kunnen overtreffen qua performance om een goed test te kunnen uitvoeren).
gast

Met een CGI script moet ik een webserver draaien. Met het Java stukje (dat ik inderdaad als een app heb draaien) wordt alles op een poort onderschept en kan het verwerkt worden. Ik denk dat dit efficienter is, maar het moet inderdaad getest worden... Geeft dat scriptje ook de volledige header weer? Ik zal het eens proberen!
gast

Alternatief gevonden: at32 Reverse Proxy.

Dit tooltje (helaas voor Windows) doet alles wat ik nodig heb. Registratie is slechts 41 Euro. Eerst even goed testen!
Limburg
Elite Poster
Elite Poster
Berichten: 1636
Lid geworden op: 28 okt 2003, 14:40
Locatie: N.O.Limburg
Uitgedeelde bedankjes: 27 keer
Bedankt: 4 keer

gast schreef:Alternatief gevonden: at32 Reverse Proxy.

Dit tooltje (helaas voor Windows) doet alles wat ik nodig heb. Registratie is slechts 41 Euro. Eerst even goed testen!


Leuk stukje software!
Succes en hou ons op de hoogte!
gast

Eerste opmerkingen...

Op de site van at32 staat:
All of our software that is not freeware is shareware
. Dat is al goed nieuws!

De software werkt fijn en is eenvoudig te configureren. Je kunt meerdere servers (op individuele toestellen) achter een IP adres hangen en de HTTP headers filteren om een routing conditie te maken. Ook kun je naar andere poorten (81,etc.) doorsturen terwijl de gebruiker op 80 binnenkomt en niets merkt van de andere poorten. Ook SSL werkt.

Een issue: bij het binnenhalen van een (bepaalde?) HTML pagina met plaatjes worden deze niet allemaal afgebeeld. Bij een refresh wel. Ik denk dat de verbinding te snel wordt gesloten maar ben ik contact met de support afdeling hierover.

Zoals Limurg schreef: mooi stukje software! :-D En in vergelijking met Octagate wel minder sterk (geen load balancing) maar 1/20 ste van de prijs...
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 446 keer
Bedankt: 1985 keer

airzimmy schreef:Ik ben er nog steeds van overtuigd dat een proxy dit werk kan doen, zowel apache (met reverse proxy config) als squid (ook als reverse proxy uiteraard) kunnen dit werk oplossen.


Ik begrijp ook niet waarom men nu spreekt over at32... terwijl dit gewoon een reverse proxy is, net zoals er een reverse proxy functionaliteit in Apache zit.

Begrijp hier echt het nut van deze speurtocht niet wanneer het reeds voor je voeten ligt (en nog minder de Java en Perl oplossingen).
gast

Ik begrijp ook niet waarom men nu spreekt over at32... terwijl dit gewoon een reverse proxy is, net zoals er een reverse proxy functionaliteit in Apache zit.

Je zult wel gelijk hebben r2504. Ik vermoed dat je met Apache ook naar andere servers kunt doorsturen? Als ik een SSL verbinding maak met Apache, kan deze dan ook naar een andere server doorgestuurd worden (zonder ander certificaat)?

Om naar andere servers door te kunnen sturen is een noodzaak (niet alles kan op dezelfde server). Vandaar dat ik iets zocht dat klein & flexibel is. Is het draaien van een Apache server om enkel door te sturen geen overdreven load?

Van Squid had ik inderdaad ook al gezien dat het gebruikt kan worden als een reverse proxy. Ik moet wel nog even uitzoeken hoe dat precies gaat. In mijn Squid server conf files zie ik nog even niet hoe dat kan...
Plaats reactie

Terug naar “Software en apps”