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?
domain routing
Hmmm... OK, geen domeinen dan
Het tooltje was voor Windows maar ik zou liever een Linux oplossing hebben.
Het tooltje was voor Windows maar ik zou liever een Linux oplossing hebben.
niet al teveel antwoorden op deze vraag...
te lastig
Heb al iets gevonden: octagate
Wel nog een beetje duur!
te lastig
Heb al iets gevonden: octagate
Wel nog een beetje duur!
-
- 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
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.
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...
-> 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...
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?
Niet echt een gebruiksvriendelijke oplossing! Daarnaast zou er een probleem ontstaan met bijvoorbeeld https...
Is er echt niets beter?
-
- 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
Greetz
Gimic
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.
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.
-
- 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,
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.
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.
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.
-
- 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.
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 ....
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...
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...
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
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
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...
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...
En zo onstaan open source projecten ;)
Nu nog nagaan of octagate geen patenten heeft die jij mogelijk zou kunnen schenden ;)
Nu nog nagaan of octagate geen patenten heeft die jij mogelijk zou kunnen schenden ;)
Wat is nou het verschil tussen je 'java code' en het .cgi server script wat ik eerder aanhaalde?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....
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 );
}
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).
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).
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!
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!
Dit tooltje (helaas voor Windows) doet alles wat ik nodig heb. Registratie is slechts 41 Euro. Eerst even goed testen!
-
- 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!
Eerste opmerkingen...
Op de site van at32 staat:
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! En in vergelijking met Octagate wel minder sterk (geen load balancing) maar 1/20 ste van de prijs...
Op de site van at32 staat:
. Dat is al goed nieuws!All of our software that is not freeware is shareware
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! En in vergelijking met Octagate wel minder sterk (geen load balancing) maar 1/20 ste van de prijs...
-
- 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).
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...