2011-01-09 5 views
0

Wir sind eine Kachel dienen, die Bilder im laufenden Betrieb generiert, aber einige auf einem CDN Caches. Wenn wir eine Anfrage für eine gegebene Kachel erhalten, z.B. http://mydomain.com/x/y/z/tile.png, können wir wählen, ob das lokale Image bereitgestellt wird oder das Image auf dem CDN bereitgestellt wird (wenn wir wissen, dass es für die angegebene Kachel einen Cache gibt)? Und wenn ja, wird es über unseren Server bedient und reduziert somit nicht wirklich die Bandbreite?Offload Image load zu CDN on the fly

Hinweis, der Client wird eine Image-Datei anfordern und muss ein Image zurück erhalten. Wir können dem Client keine URL für das CDN senden und dann vom Client eine zweite Anfrage stellen lassen.

Antwort

0

Wenn Sie einen 30x Header nicht auslösen können umleiten

header("Location: http://cdn.example.com/....."); 

es keine Möglichkeit, dies zu tun ist. Sie müßten das Image von der CDN auf der Serverseite holen und es übergeben, wodurch der Punkt des CDN-Moots gerendert würde.

+0

Wir haben sicherlich die Flexibilität, eine Header-Redirect auf dem Kachel-Server auszulösen (wie es nur eine PHP-Seite ist). Wird das für den Kunden funktionieren? Sie fordern ein Bild an, folgen dem 30x und erhalten stattdessen das Bild vom CDN? – user435281

+0

@user hängt davon ab, was der Client ist. Ein Browser wird der Weiterleitung folgen. Ein 'curl' mit deaktivierter Option' followlocation' (oder wie auch immer es heißt, kann sich nicht erinnern) wird nicht folgen, sondern einen leeren Körper zurückgeben. –