Thomas: Proxy Server einrichten?

Guten abend,

ich habe einige Inhalte auf der Website, die sich selten ändern, darunter ein paar Bilder deren Datengröße was höher ist. Kann ich jetzt einen Proxyserver auf meinem Server einrichten und diese Bilder dort ablegen? https://developers.google.com/speed/docs/best-practices/caching?hl=de#LeverageProxyCaching

Ich möchte den Server dann so konfigurieren, dass der Browser oder auch der Google Bot anhand des HTTP Headers erkennt, dass er die eben angesprochenen Bilder direkt vom Proxy Server nehmen kann.

Wenn ich es richtig verstanden habe, wird der gesamte Ladevorgang dadurch deutlich beschleunigt. Das Laden eines Bildes geht nicht mehr diese Schritte durch...

1. DNS Lookup

2. Initial Connection

3. SSL Negotiation

4. Time to First Byte

5. Content Download

6. Start Render

7. Document Complete

...sondern Schritt 4 und 5 u.a. entfallen?!

Gruß
Thomas

  1. Moin!

    ich habe einige Inhalte auf der Website, die sich selten ändern, darunter ein paar Bilder deren Datengröße was höher ist. Kann ich jetzt einen Proxyserver auf meinem Server einrichten und diese Bilder dort ablegen? https://developers.google.com/speed/docs/best-practices/caching?hl=de#LeverageProxyCaching

    Dein Vorhaben ist falsch. Das "Leverage Proxy Caching" ist für den Proxy direkt VOR deinem Besucher, nicht für einen Proxy direkt vor DEINEM Server.

    Was die Optimierungen angeht, solltest du auf derselben Seite lieber die Sektion "Leverage Browser Caching" angucken, denn das ist exakt, was man tun sollte.

    Ich möchte den Server dann so konfigurieren, dass der Browser oder auch der Google Bot anhand des HTTP Headers erkennt, dass er die eben angesprochenen Bilder direkt vom Proxy Server nehmen kann.

    Das ist ja Blödsinn. Wozu den Proxy? Der würde sich ja auch nur wie ein Server verhalten.

    Wenn ich es richtig verstanden habe, wird der gesamte Ladevorgang dadurch deutlich beschleunigt.

    Falsch verstanden.

    Das Laden eines Bildes geht nicht mehr diese Schritte durch...

    1. DNS Lookup

    Wenn der Proxy-Server eine eigene Domain hat, ist dieser Aufwand doppelt, denn den Domainnamen deines Servers kennt er schon.

    1. Initial Connection

    Das ist ebenfalls doppelt. HTTP/1.1 erlaubt persistente Connections zum Zielserver, mit dem man mehr als eine Ressource pro Request übertragen kann.

    1. SSL Negotiation

    Ebenfalls doppelt.

    1. Time to First Byte

    Das hängt vom Server ab, wie schnell er die Daten lesen und auf das Netzwerk senden kann.

    1. Content Download

    Hängt von der Geschwindigkeit der Leitung hin zum Browser ab.

    1. Start Render

    Abhängig von der CPU des Clients.

    1. Document Complete

    ...sondern Schritt 4 und 5 u.a. entfallen?!

    Schritt 4 und 5 entfallen dann, wenn du deine unveränderlichen Ressourcen mit entsprechenden Caching-Headern an den Browser sendest. Diese sind aber total unabhängig davon, ob ein Proxy im Spiel ist, die kann man auch einfach vom Server her setzen lassen.

    Setze Header, die den Browser darüber informieren, dass das Bild z.B. eine Woche lang im Cache behalten werden darf. Dann wird er es nicht nochmal vom Server abrufen, bis die Woche rum ist. Bedenke dabei aber, dass du eventuelle Änderungen dieses Bildes nicht wirksam veröffentlichen kannst, weil der Browser des Besuchers nicht mehr nachfragt, ob seine Kopie noch aktuell ist. Wenn du was änderst, änderst du idealerweise den Namen des Bildes, oder du hängst einen Query-String dran, der sich dann ändert.

    - Sven Rautenberg

    1. Hallo Sven,

      vielen Dank für die ausführliche Antwort!

      VG
      Thomas