Ich erstelle einfache Seite, wo viele Bilder. Alle Bilder werden auf Remote-Provider gehostet (gehostet auf Objektspeicher und ich habe nur Links zu allen Bildern) Um www zu beschleunigen möchte ich Lack verwenden, um diese Bilder zu cachen, aber ich habe ein Problem:
Alle Bilder werden mit https, so serviert Ich habe Haproxy verwendet, um ssl zu beenden und den nächsten Verkehr zu lackieren, aber wie man in der Lackwebsiteadresse abbildet, die für Endbenutzer wie https://www.website.com/picture.jpg mit entfernter Adresse sichtbar sein sollte, wo Bild gehostet wird (https://www.remotehostedpictures.com/picture.jpg). Also, im Endergebnis muss der Benutzer den ersten Link sehen, die Remote-Adresse remotehostedpictures.com/picture.jpg kann nicht sichtbar sein.Cache-Bilder von Remote-Server mit Lack
Antwort
In Ihrem Lack vcl_recv
sollten Sie Ihre Anfrage host
Header ändern, dann müssen Sie remotehostedpictures.com
als Ihr Backend erklären.
Am Ende sollten Sie so etwas wie dieses (Code nicht getestet)
sub vcl_recv {
if (req.url ~ "\.jpg") {
set req.http.host = "www.remotehostedpictures.com";
set req.backend_hint = remote_host;
}
}
backend remote_host {
.host = "www.remotehostedpictures.com";
.port = "80";
}
By the way, passen sie von dns in backend.host
haben. Wenn die DNS auf mehrere IPs aufgelöst wird, wird der erste verwendet. Die Auflösung der DNS erfolgt zur Zeit der Kompilierung. Wenn sich die DNS ändert, sollten Sie Ihren vcl neu laden.
Thx, fast Arbeit, aber wenn ich www.website.com/directory/picture.jpg tippe, dann sehe ich 404 nicht gefunden. Der Pfad zur Datei in remote_host sieht gleich aus: www.remotehostedpictures.com/directory/picture.jpg. So wird der Pfad zur Datei nicht zugeordnet. – stefek143
Wenn Sie beim Anfordern Ihrer Bilder das Lacklog ausführen. Was ist die Ausgabe? –
Ich denke, das Speichern von Bildern in Varnish ist keine gute Idee, denn als Varnish wird den ganzen Widder schnell füllen (wenn Sie viele Bilder haben), als wenn Varnish voll ist, bereinigt es den gesamten Cache, stellen Sie sich vor, was auf dem Server passiert Wenn der gesamte Cache gelöscht wurde und Sie auf Ihrer Seite Traffic haben.
Vor einiger Zeit mache ich einen solchen Cache in Varnish und nach ein paar Stunden lebe ich deaktivieren Bilder zwischenspeichern wegen der Säuberung (für mich am wichtigsten Caching Seiteninhalt).
In solchen Situationen ist die beste Lösung CDN. Sie können externe Dienste wie Cloudflare verwenden oder einfache CDNs auf Nginx erstellen (die nur statische Dateien mit dem Expired-Header versorgen).
Hoffe es hilft :)
- 1. Verwenden von Intellij mit dem Remoteserver
- 2. wärmender Lack-Cache mit Bildern?
- 3. Gzip-Komprimierung mit Lack-Cache
- 4. Magento Multilaga Laden mit Lack
- 5. Fehler beim Verwenden von WPF CSLA Remoteserver
- 6. obj.ttl in Lack 4.0
- 7. Lack startet nicht richtig
- 8. Verwendung von Lack-Theken MAIN. * In VCL
- 9. Lack 4: Remote Cache
- 10. Lack 503 nach 200 von Backend
- 11. Haproxy vor Lack oder umgekehrt?
- 12. Nach dem Hinzufügen von mobilen erkennen in Lack {default.vcl}, Lack nicht starten
- 13. Lack Hit-for-Pass bedeutet?
- 14. Get Pidof Lack in Ubuntu
- 15. lack vcl spülen cache selektiv
- 16. Kann Lack cache gehackt werden?
- 17. Quartz RMI-Remoteserver, der ungültigen Hostnamen zurückgibt
- 18. Zugriff auf Sharepoint 2010-Word-Automatisierungsdienste von einem Remoteserver?
- 19. Tomcat-Konfiguration zum Herstellen einer Verbindung mit ActiveMQ-Remoteserver
- 20. Die beste Methode zum Abfragen von Speicherplatz auf dem Remoteserver
- 21. Powershell Invoke-Befehl Remove-Item-Remoteserver
- 22. Wie ein doppeltes Anführungszeichen in Lack vcl
- 23. Lack 5.0 Lackstat zeige leere Antwort mit Parameter f
- 24. lack split url und ändern url
- 25. Verwenden von Lack zu Proxy-WordPress (auf WPEngine)
- 26. url ausgeschlossen durch noch über Lack Rückkehr
- 27. Lack Round Robin Direktor nicht Kommissionierung Backends
- 28. Lack Bezug auf eine externe Datei
- 29. Sammeln Lack Statistiken auf URL-Ebene
- 30. Stumped von "Der Remoteserver hat einen Fehler zurückgegeben: (403) Forbidden" mit WCF-Dienst in https
Erstens, bitte verwenden Sie nicht andere Leute Domain-Namen als Platzhalter. http://example.com, http://example.net und http://example.org werden speziell für diesen Zweck zugewiesen. Zweitens, was ist das Problem, das Sie haben? Ich frage, denn was Sie als das gewünschte Verhalten beschreiben, ist, wie HAProxy und Varnish funktionieren. Das ist das erwartete Verhalten. Wenn Sie example.com → HAProxy → Varnish → example.net (Inhaltsquelle) haben, wären die Links und die Adresse example.com. –
Ich weiß, wie es mit der Verwendung haproxy (Proxy-Pass) zu tun, aber ich weiß nicht, wie in Lack. Vielleicht könnte jemand ein einfaches Konfigurationsbeispiel in Lack teilen? – stefek143