Proxy-Weiterleitung - nur wie?
Eddie
- webserver
Hallo allerseits,
ich hatte diese Frage in den letzten Tagen schonmal angeschnitten, der Thread ist aber leider schon im Archiv :-(
Es geht um die Weiterleitung einer Clientanfrage von
www.old.de/index.htm
auf
www.new.de/index.htm
Dabei duerfen weder Besucher, noch (und das ist mir sehr wichtig) Suchmaschinen etwas davon bemerken! Das heißt, die übertragenen Header dürfen nichts verraten. Allerdings habe ich nur Zugriff auf die .htaccess!
Folgende beide Varianten habe ich probiert, die dritte jedoch noch nicht:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ProxyPass / http://www.new.de/
Das ging leider garnicht, und wenn ich das
richtig verstanden habe, lag's an der
Verwendung in der .htaccess :-(
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
RewriteRule ^.*$ http://www.2.de%{REQUEST_URI} [P]
Dummerweise werden damit ein paar zusätz-
liche Header übertragen, bspw. "X-Cache".
Ich habe versucht, sie zu entfernen, aber
offenbar geht das nur bei selbstgesetzten
Headern:
Header add TestHeader "test"
Header unset TestHeader
Header unset X-Cache[/code]
"TestHeader" wird hierbei gelöscht, während
"X-Cache" bleibt :-(
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Und eine dritte Möglichkeit wäre vielleicht
mittels PHP.
Ich weiss nicht, ob das so geht, dass nach
außen hin nichts zu erkennen ist?
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Habt ihr eine Idee, wie ich den Mirror sonst korrekt einrichten kann? Oder wie ich die obigen beiden Methoden in den Griff bekomme?
Danke für eure Hilfe,
Eddie
hi,
Es geht um die Weiterleitung einer Clientanfrage von
www.old.de/index.htm
auf
www.new.de/index.htmDabei duerfen weder Besucher, noch (und das ist mir sehr wichtig) Suchmaschinen etwas davon bemerken!
Darf man interessehalber erfragen, warum?
(Wenn du unter beiden Domains die selben Inhalte auslieferst, könnten Suchmaschinen das u.U. sogar als "double content" abstrafen.
Was spricht also gegen das in solchen Fällen absolut übliche Vorgehen, mit einem 301 Moved Permanently von der alten zur neuen Domain weiterzuleiten?)
gruß,
wahsaga
Hallo wahsaga,
Dabei duerfen weder Besucher, noch (und das ist mir sehr wichtig) Suchmaschinen etwas davon bemerken!
Darf man interessehalber erfragen, warum?
Weil ich mit der Domain auf einen neuen Server umziehen will. Aber vielleicht macht es auch Sinn, das hier in einem extra Unterthread nochmal zu hinterfragen - denn ich bin mir meiner Sache ueberhaupt nicht sicher.
Also, Folgendes ist der aktuelle Stand:
die zwei Domains http://www.umdiewelt.de und http://www.break-fresh-ground.com verweisen beide auf daselbe physikalische Verzeichnis. Das dort laufende PHP-Skript entscheidet dann abhängig von der angefragten Domain, welche Sprache ausgeliefert wird.
So, und jetzt habe ich einen neuen Server, da soll alles rueber: Skripte, Fotos und die DB. Und zwar moeglichst ausfallfrei!
Ich dachte mir, ich nutze die Proxy-Weiterleitung dazu, in Ruhe umzuschalten - und zwar zu einem mir passend erscheinenden Zeitpunkt. Das heisst, die eigentliche Umschaltung findet noch vor dem KK-Antrag statt!
Ich kopiere also alle Dateien (und vor allem die vielen Fotos) rueber. Dann setze ich die Proxy-Umleitung und kopiere die in der Zwischenzeit eventuell dazu gekommenen Fotos meiner Mitglieder hinterher. Die Umstellung dauert ein paar Minuten, ggf. kann es sein, das ein paar Autoren auf meiner Seite kurzfristig ihre neuen Bilder vermissen.
Die Header duerfen sich nicht unterscheiden, weil vom Zeitpunkt der Proxy-Einrichtung bis zum fertigen KK-Antrag ja ggf. ein paar Tage vergehen koennen. Und ich will auf keinen Fall meine SuMa-Positionen gefaehrden - ohne sie habe ich keine Leser, ohne Leser macht das Schreiben neuer Berichte nur eingeschraenkt Sinn, ohne neue Berichte...
(Wenn du unter beiden Domains die selben Inhalte auslieferst, könnten Suchmaschinen das u.U. sogar als "double content" abstrafen.
Das nehme ich in Kauf. Der Double Content wäre ja auf einem neuen Server ohne jeglichen PageRank (etc...), im Normalfall sollte Google das erkennen und dann diesen Server abstrafen (jedoch nicht umdiewelt.de).
Was spricht also gegen das in solchen Fällen absolut übliche Vorgehen, mit einem 301 Moved Permanently von der alten zur neuen Domain weiterzuleiten?)
Die neue Domain ist nur eine Wegwerfdomain, die einzig dazu dient, das Ganze gemueglich umzustellen :-) Wenn ich die Umstellung nur mit dem KK-Antrag mache, riskiere ich imho Inkonsistenzen, denn dann kann es passieren, dass die beiden oben genannten Domains eine zeitlang auf verschiedene Server verweisen - Fotos der Mitglieder wuerden also mal hier mal da landen!
Jetzt würde mich natürlich deine Meinung interessieren, ob das Ganze überhaupt Hand und Fuß hat.
Eddie
Hi,
Die neue Domain ist nur eine Wegwerfdomain, die einzig dazu dient, das Ganze gemueglich umzustellen :-)
Hmm, da sollte es, halbwegs fähige Provider vorausgesetzt, allerdings keine Probleme geben.
Aber wenn Du für dich sichergehen willst: Installier doch einfach ein PHP, welches die passenden Daten einfach vom alten Server holt und ausgibt. Und was einmal geholt wurde, wird gecacht.
Da hast Du volle Kontrolle über die Header ... :)
Gruß, Cybaer
hi,
Ich dachte mir, ich nutze die Proxy-Weiterleitung dazu, in Ruhe umzuschalten - und zwar zu einem mir passend erscheinenden Zeitpunkt. Das heisst, die eigentliche Umschaltung findet noch vor dem KK-Antrag statt!
Ich kopiere also alle Dateien (und vor allem die vielen Fotos) rueber.
Dass du die _Daten_ vom aktuellen auf den neuen Server umziehst, bevor du den KK-Antrag startest - davon bin ich sowieso mal ausgegangen.
Dann setze ich die Proxy-Umleitung und kopiere die in der Zwischenzeit eventuell dazu gekommenen Fotos meiner Mitglieder hinterher. Die Umstellung dauert ein paar Minuten, ggf. kann es sein, das ein paar Autoren auf meiner Seite kurzfristig ihre neuen Bilder vermissen.
Gut, auch verstanden.
Du willst also jetzt schon auf dem neuen System produktiv arbeiten und dort auch neue Daten ablegen, noch bevor die Domain umgezogen wird - und willst dafür Anfragen an den alten "Standort" der Domain per Proxy an den neuen "tunneln".
Die Header duerfen sich nicht unterscheiden, weil vom Zeitpunkt der Proxy-Einrichtung bis zum fertigen KK-Antrag ja ggf. ein paar Tage vergehen koennen. Und ich will auf keinen Fall meine SuMa-Positionen gefaehrden - ohne sie habe ich keine Leser, ohne Leser macht das Schreiben neuer Berichte nur eingeschraenkt Sinn, ohne neue Berichte...
Da frage ich mich, ob du dir hier nicht zu viel Gedanken machst, bzw. zu schwarz siehst.
Du sprachst von ein paar zusätzlichen Headern wie "X-Cache" o.ä.
Welchen Einfluss sollten diese auf das Verhalten der Suchmaschinen und ihre Bewertung der Inhalte haben?
Die neue Domain ist nur eine Wegwerfdomain, die einzig dazu dient, das Ganze gemueglich umzustellen :-)
Dann verstehe ich nicht, wofür die "neue Domain" überhaupt gebraucht wird?
IdR. hast du doch auf deinen neuen _Webspace_ auch über eine Subdomain Zugriff, in der Form {kundenkennung}.domain-deines-neuen-providers.xy
Wozu diese "temporäre" Domain jetzt dienlich sein soll, habe ich noch nicht verstanden.
Wenn ich die Umstellung nur mit dem KK-Antrag mache, riskiere ich imho Inkonsistenzen, denn dann kann es passieren, dass die beiden oben genannten Domains eine zeitlang auf verschiedene Server verweisen - Fotos der Mitglieder wuerden also mal hier mal da landen!
Würde es da nicht ausreichen, ein paar Tage nach dem Umzug noch die auf dem alten Server neu hinzugekommenen Daten auf den neuen zu transferieren?
Auf den alten Webspace solltest du ja noch eine Zeitlang Zugriff haben - den braucht man ja mit dem KK-Antrag nicht unbedingt gleichzeitig kündigen.
gruß,
wahsaga
Hi Eddie,
ProxyPass / http://www.new.de/
Das ging leider garnicht, und wenn ich das
richtig verstanden habe, lag's an der
Verwendung in der .htaccess :-(
Richtig, ProxyPass lässt sich nicht in der .htaccess verwenden - du könntest deinen Server Administrator bitten, dass in deiner VirtualHost-Definition mit einzubauen.
~~~apache
Header add TestHeader "test"
Header unset TestHeader
Header unset X-Cache
>
> "TestHeader" wird hierbei gelöscht, während
> "X-Cache" bleibt :-(
Hast du schon mal versucht den Header X-Cache mit
Header set X-Cache "Test"
zu überschreiben? Dann mit "" zu überschreiben und letztendlich den überschriebenen Header mit unset zu löschen?
Beachte auch den [Unterschied von set und add](http://httpd.apache.org/docs/2.0/mod/mod_headers.html#header).
MfG, Dennis.
--
Mein SelfCode: [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:# ss:) de:\] js:| ch:{ sh:| mo:} zu:|](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%5D+js%3A%7C+ch%3A%7B+sh%3A%7C+mo%3A%7D+zu%3A%7C)
[MySQLDBExport - Eine PHP Klasse für MySQL Dumps](http://tutorial.riehle-web.com/scripts/#mysql)
[Melonenmädel](http://www.schaumerlmal.de/blog/log.php/2006/05/melonenmaedel) - [www.schaumerlmal.de](http://www.schaumerlmal.de/blog/)
Hallo allerseits, hallo Dennis,
Richtig, ProxyPass lässt sich nicht in der .htaccess verwenden - du könntest deinen Server Administrator bitten, dass in deiner VirtualHost-Definition mit einzubauen.
Ich glaub nicht, dass ich da große Aussichten habe - 1und1 sind preiswert aber dafuer unerbittlich :-/
Hast du schon mal versucht den Header X-Cache mit
Header set X-Cache "Test"
zu überschreiben? Dann mit "" zu überschreiben und letztendlich den überschriebenen Header mit unset zu löschen?
Hab's grad probiert, Folgendes passiert (nachdem ja X-Cache bereits existiert):
#anfänglicher X-Cache-Wert: MISS from umdiewelt.de
Header set X-Cache "Test"
#X-Cache-Wert: Test,MISS from umdiewelt.de
Header set X-Cache ""
#X-Cache-Wert: ,MISS from umdiewelt.de
Header unset X-Cache
#X-Cache-Wert: MISS from umdiewelt.de
Header unset X-Cache
Header unset X-Cache
Header unset X-Cache
#X-Cache-Wert: MISS from umdiewelt.de
# :-(
Beachte auch den Unterschied von set und add.
Dort heisst es auch:
"The Header directives are processed just before the response is sent to the network. These means that it is possible to set and/or override most headers, except for those headers added by the header filter."
Vielleicht wäre das ein Hinweis - aber was ist dann der "header filter"?
Eddie
Hi Eddie,
Ich glaub nicht, dass ich da große Aussichten habe - 1und1 sind preiswert aber dafuer unerbittlich :-/
Preiswert?? Pah, das ich nicht lache! Hast du dir schon mal andere Provider wie z.B. Occuris (da gibts ganz besonders viele Features) oder All-Inklusive (die sind verdammt billig) anschaut? Letztere sind jetzt übrigens neuerdings bei Webhostlist Top10 - Webhosting Privat ganz oben mit drin.
Dort heisst es auch:
"The Header directives are processed just before the response is sent to the network. These means that it is possible to set and/or override most headers, except for those headers added by the header filter."
Vielleicht wäre das ein Hinweis - aber was ist dann der "header filter"?
Um das mal klar zu stellen - ich gehe von folgender Rechnerstruktur aus:
Client --> Server A --> Server B
fordert alte fungiert als Proxy stellt das Ziel dar
Domain an "ist" alte Domain "ist" die neue Domain
Die Konfiguration müsste dann natürlich am Server A erfolgen, da dieser der Proxy ist und dafür verantwortlich ist, dass die Proxy Header da rein kommen! Eine entsprechende Konfiguration an Server B kann nichts bringen, da der Proxy-Server A für ihn auch nur ein normaler Client ist.
Und weiter: Bist du dir sicher, dass kein von deinem Internet-Provider vorangeschalteter Proxy-Server für die Header verantwortlich ist? Hast du SSH Zugriff auf einen Server im Internet? Dann gibt da mal curl -I http://www.example.org ein und poste die Ausgabe.
MfG, Dennis.
Hallo Dennis,
Ich glaub nicht, dass ich da große Aussichten habe - 1und1 sind preiswert aber dafuer unerbittlich :-/
Preiswert?? Pah, das ich nicht lache!
Ok, dummer Denkfehler. Ich habe damit die Managed Server ("Server B") gemeint, obwohl wir hier über die Hosting-Produkte ("Server A") sprechen.
Managed Server gibt's meines Wissens nur bei Strato billiger, jedenfalls habe ich sonst nichts gefunden - alles andere war teurer. 1und1 war für mich der Mittelweg zwischen fehlendem Service (Strato) und anderen für mich zu teuren Angeboten.
Ok, den Rest der Antwort liest du im separaten Unterthread :-)
Eddie
Hallo Dennis,
Um das mal klar zu stellen - ich gehe von folgender Rechnerstruktur aus:
Client --> Server A --> Server B
fordert alte fungiert als Proxy stellt das Ziel dar
Domain an "ist" alte Domain "ist" die neue DomainDie Konfiguration müsste dann natürlich am Server A erfolgen, da dieser der Proxy ist und dafür verantwortlich ist, dass die Proxy Header da rein kommen! Eine entsprechende Konfiguration an Server B kann nichts bringen, da der Proxy-Server A für ihn auch nur ein normaler Client ist.
Genau so hab ich's gemeint! :-)
Und weiter: Bist du dir sicher, dass kein von deinem Internet-Provider vorangeschalteter Proxy-Server für die Header verantwortlich ist? Hast du SSH Zugriff auf einen Server im Internet? Dann gibt da mal curl -I http://www.example.org ein und poste die Ausgabe.
Das sieht so aus:
1. ohne Proxy, das Original auf Server A wird ausgeliefert:
~~~http
HTTP/1.1 200 OK
Date: Thu, 18 May 2006 16:01:58 GMT
Server: Apache/1.3.33 (Unix)
X-Powered-By: PHP/4.4.2
Content-Type: text/html
2\. mit Proxy, die Kopie auf Server B wird ausgeliefert:
~~~http
HTTP/1.1 200 OK
Date: Thu, 18 May 2006 16:02:14 GMT
Server: Apache/1.3.33 (Unix)
X-Powered-By: PHP/4.4.2
Content-Type: text/html
X-Cache: MISS from www.umdiewelt.de
Ein "Header unset X-Cache" ändert da leider garnichts :-(((
Eddie
Hi Eddie,
Genau so hab ich's gemeint! :-)
Gut, dann sind wir uns da schon mal einig ;-)
Ich habe das Szenario jetzt gerade mal nachgestellt - dazu habe ich einen Ordner angelegt mit einer .htaccess-Datei mit folgendem Inhalt
~~~apache
RewriteEngine On
RewriteRule ^foobar$ http://riehle-web.com/ [P]
Nun ein `curl -I http://example.org/~driehle/foobar`:
HTTP/1.1 200 OK
Date: Thu, 18 May 2006 16:24:28 GMT
Server: Apache/1.3.33 (Unix)
Last-Modified: Fri, 19 Aug 2005 16:41:15 GMT
ETag: "17fc058-282-43060bab"
Accept-Ranges: bytes
Content-Type: text/html
Zum Vergleich nun der Abruf einern Standard-Datei mit `curl -I http://example.org/~driehle/test.html`:
HTTP/1.1 200 OK
Date: Thu, 18 May 2006 16:25:22 GMT
Server: Apache
Last-Modified: Thu, 18 May 2006 16:25:18 GMT
ETag: "87c75-0-7b555780"
Accept-Ranges: bytes
Content-Type: text/html
Bis auf dieses ETag, welches mir nichts sagt, jedoch bei beiden Responses vorhanden ist, ist das also nichts besonderes/verdächtiges drin.
Ich kann nur noch mal meine Frage wiederholen, ob du dir sicher bist, dass nicht noch ein Proxy deines Providers irgendwo dazwischen hockt, also:
Client -> Proxy (z.B. T-Online) -> Server A -> Server B
Ansonsten poste doch einfach mal die URL's unter denen die original Seiten von Server A und und die Seiten von Server B über Server A zu bekommen sind - dann curle ich das selber noch mal an.
MfG, Dennis.
--
Mein SelfCode: [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:# ss:) de:\] js:| ch:{ sh:| mo:} zu:|](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%5D+js%3A%7C+ch%3A%7B+sh%3A%7C+mo%3A%7D+zu%3A%7C)
[MySQLDBExport - Eine PHP Klasse für MySQL Dumps](http://tutorial.riehle-web.com/scripts/#mysql)
[Melonenmädel](http://www.schaumerlmal.de/blog/log.php/2006/05/melonenmaedel) - [www.schaumerlmal.de](http://www.schaumerlmal.de/blog/)
Hi Dennis,
wow, das ging ja schnell!
Ich habe das Szenario jetzt gerade mal nachgestellt
Dann scheint es vielleicht wirklich an 1und1 zu liegen?
Ich kann nur noch mal meine Frage wiederholen, ob du dir sicher bist, dass nicht noch ein Proxy deines Providers irgendwo dazwischen hockt, also:
Client -> Proxy (z.B. T-Online) -> Server A -> Server B
Das könnte vielleicht sein. Server A ist ja genaugenommen ein Hosting-Tarif, d.h. da muss intern nochmal irgendeine Umleitung vorgenommen werden, weil sich da ja mehrere Seiten eine IP-Adresse teilen. Aber das wäre ja auch der Fall, wenn ich nicht auf Server B weiterleite, sollte also doch eigentlich keinen Unterschied machen.
Ansonsten poste doch einfach mal die URL's unter denen die original Seiten von Server A und und die Seiten von Server B über Server A zu bekommen sind - dann curle ich das selber noch mal an.
Das hier ist eine Seite, die so und nicht anders von Server A kommt:
http://umdiewelt.de/Asien/Suedostasien/Thailand/Reisebericht-24/Kapitel-1.html
Und diese hier wird "geproxed", erkennbar am "x" am Anfang des Textes (wird von Server B eingefügt):
http://umdiewelt.de/Asien/Suedostasien/Thailand/Reisebericht-24/Kapitel-0.html
Eddie
Hi Eddie,
Das hier ist eine Seite, die so und nicht anders von Server A kommt:
http://umdiewelt.de/Asien/Suedostasien/Thailand/Reisebericht-24/Kapitel-1.html
Da bekomme ich erst mal ein
Location: http://www.umdiewelt.de/Asien/Suedostasien/Thailand/Reisebericht-24/Kapitel-1.html
Rufe ich die Adresse ab so bekomme ich ganz normale HTTP-Header nicht mehr und nicht weniger - OK.
Und diese hier wird "geproxed", erkennbar am "x" am Anfang des Textes (wird von Server B eingefügt):
http://umdiewelt.de/Asien/Suedostasien/Thailand/Reisebericht-24/Kapitel-0.html
Und hier bekomme ich - egal von wo, also über welchen Internetanschluss ich das curle - stets den X-Cache Header "MISS from umdiewelt.de", einen Proxy bei der Internet-Anbindung können wir also auschließen, scheint so, als ober Server da was cachen würde, siehe auch mein anderes Posting.
MfG, Dennis.
Hi Eddie,
ich habe mal noch etwas nach dem X-Cache Header recherchiert - einmal scheint es da etwas zu geben, wenn man den IIS benutzt, was sich XCache nennt. Da du aber einen Apache verwendest (wenn auch etwas älterer Bauart) dürftest du diese Header Analyse interessanter finden, dort wird unter anderem auf Squid Web Proxy Cache verwiesen (der Link dort ist fehlerhaft, deshalb hier) - anscheinend hinterlässt dieses Tool genau den X-Cache Header.
Frage wäre nun noch, wo denn genau dieser Cache sich befindet...
MfG, Dennis.
Hallo Dennis,
Krass, ok, wenn's das ist, dann ist ja alles klar. Auf die Idee, dass irgendwas anderes als der Apache die Header setzen könnte, bin ich garnicht gekommen...
Offenbar brauche ich da Zugriff auf die squid.conf - hab ich aber nicht! Über die Suche habe ich sonst keine Möglichkeit gefunden, die Header zu löschen.
Ich glaube, ich werde das Problem jetzt mit der Hauruck-Methode lösen. Also alles (KK-Antrag, Serverumstellung, Backups) in einer langen Nacht. Das ist scheisse, weil ich meine Mitglieder aussperren muss, aber dann geht's halt nicht anders. Irgendwann will ich's auch hinter mir haben!
Danke dir nochmal fuer deine viele Zeit!!! Gelernt hab ich auf jeden Fall eine Menge!
Eddie