2016-10-18 4 views
0

Ich brauche etwas Hilfe zu verstehen, was genau in diesem Szenario vor sich geht. Ich kann nicht für das Leben von mir dienen diese Svg-Datei obwohl Lack.Varnish + nginx und gzipped svg

Mein Setup ist NGINX auf Port 8080 als Backend für Varnish auf Port 80. Sehr einfach. Alles funktioniert gut außer für diese SVG-Datei. Beachten Sie, dass ich andere SVG-Dateien gut bedienen kann! Aber wenn man sich das Datei-Markup anschaut, sieht es fast genauso aus wie andere. Serving durch Nginx macht es nett.

prüfen diese Linie - Gunzip Fehler: -3 (falsche Headerprüfsequenz)

Ganze varnishlog oben.

* << BeReq >> 458807 
- Begin   bereq 458806 fetch 
- Timestamp  Start: 1476832525.282152 0.000000 0.000000 
- BereqMethod GET 
- BereqURL  /images/logo-fibersals.svg 
- BereqProtocol HTTP/1.1 
- BereqHeader Host: fibersals.com.br 
- BereqHeader Upgrade-Insecure-Requests: 1 
- BereqHeader User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 
- BereqHeader Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
- BereqHeader Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2 
- BereqHeader X-Forwarded-For: 179.177.210.249, 179.177.210.249 
- BereqHeader Accept-Encoding: gzip 
- BereqHeader X-Varnish: 458807 
- VCL_call  BACKEND_FETCH 
- VCL_return  fetch 
- BackendOpen 29 boot.default 127.0.0.1 8080 127.0.0.1 43215 
- BackendStart 127.0.0.1 8080 
- Timestamp  Bereq: 1476832525.282200 0.000048 0.000048 
- Timestamp  Beresp: 1476832525.283278 0.001127 0.001079 
- BerespProtocol HTTP/1.1 
- BerespStatus 200 
- BerespReason OK 
- BerespHeader Content-Type: image/svg+xml 
- BerespHeader Connection: keep-alive 
- BerespHeader Server: nginx 
- BerespHeader Last-Modified: Tue, 18 Oct 2016 21:34:00 GMT 
- BerespHeader Vary: Accept-Encoding 
- BerespHeader ETag: "58069548-24f6" 
- BerespHeader X-XSS-Protection: 1; mode=block 
- BerespHeader X-Frame-Options: SAMEORIGIN 
- BerespHeader X-Content-Type-Options: nosniff 
- BerespHeader Accept-Ranges: bytes 
- BerespHeader Date: Tue, 18 Oct 2016 21:34:15 GMT 
- BerespHeader Expires: Thu, 31 Dec 2037 23:55:55 GMT 
- BerespHeader X-Original-Content-Length: 9462 
- BerespHeader Content-Encoding: gzip 
- BerespHeader Content-Length: 3684 
- BerespHeader Vary: Accept-Encoding 
- BerespHeader ETag: "58069548-24f6" 
- BerespHeader Cache-Control: max-age=315360000 
- BerespHeader X-XSS-Protection: 1; mode=block 
- BerespHeader X-Frame-Options: SAMEORIGIN 
- BerespHeader X-Content-Type-Options: nosniff 
- BerespHeader Accept-Ranges: bytes 
- TTL   RFC 315360000 10 -1 1476832525 1476832525 1476826455 2145916555 315360000 
- VCL_call  BACKEND_RESPONSE 
- TTL   VCL 315360000 259200 0 1476832525 
- VCL_return  deliver 
- Storage  malloc s0 
- ObjProtocol HTTP/1.1 
- ObjStatus  200 
- ObjReason  OK 
- ObjHeader  Content-Type: image/svg+xml 
- ObjHeader  Server: nginx 
- ObjHeader  Last-Modified: Tue, 18 Oct 2016 21:34:00 GMT 
- ObjHeader  Vary: Accept-Encoding, Accept-Encoding 
- ObjHeader  ETag: "58069548-24f6" 
- ObjHeader  X-XSS-Protection: 1; mode=block 
- ObjHeader  X-Frame-Options: SAMEORIGIN 
- ObjHeader  X-Content-Type-Options: nosniff 
- ObjHeader  Date: Tue, 18 Oct 2016 21:34:15 GMT 
- ObjHeader  Expires: Thu, 31 Dec 2037 23:55:55 GMT 
- ObjHeader  X-Original-Content-Length: 9462 
- ObjHeader  Content-Encoding: gzip 
- ObjHeader  Content-Length: 3684 
- ObjHeader  ETag: "58069548-24f6" 
- ObjHeader  Cache-Control: max-age=315360000 
- ObjHeader  X-XSS-Protection: 1; mode=block 
- ObjHeader  X-Frame-Options: SAMEORIGIN 
- ObjHeader  X-Content-Type-Options: nosniff 
- Fetch_Body  3 length stream 
- Gzip   Gunzip error: -3 (incorrect header check) 
- FetchError  Invalid Gzip data: incorrect header check 
- Gzip   u F - 2 0 0 0 0 
- BackendClose 29 boot.default 
- BereqAcct  472 0 472 649 0 649 
- End 

Jetzt sollte ich gzip von SVG-Dateien überspringen? Eine andere Sache, die ich nicht verstehe, ist, warum Lack mit der gzipped Akte verwirrt. Soll es nicht einfach zwischengespeichert und weitergegeben werden? Gzip oder kein Gzip? Es scheint, als würde es versuchen, es aus irgendeinem Grund zu dekomprimieren.

Danke!

+0

Aus der Lackdocs: Wenn der Server mit gzip'ed Inhalt antwortet, wird er in seiner komprimierten Form gespeichert und Accept-Encoding wird hinzugefügt der Vary-Header. https://www.varnish-cache.org/docs/trunk/users-guide/compression.html – ddutra

+0

lackiert (Lack-4.1.3 Revision 5e3b6d2) – ddutra

+0

Ich vermute, das kann auch ein Problem mit meinem SVG sein, wenn Jeder kann mir helfen zu debuggen Ich werde sehr dankbar sein. http://s3.fibersals.com.br/logos/logo-fibersals.svg ist die problematische SVG-Datei. Es wurde mit Osx Boxy SVG generiert. Diese Datei funktioniert gut http://fibersals.com.br/favicons/safari-pinned-tab.svg. Es wurde mit einem webbasierten Favicon-Tool erstellt. – ddutra

Antwort

1

Ihr nginx-Backend gibt den Header Vary zweimal mit demselben Wert Accept-Encoding zurück. Ich weiß nicht, ob das ein Problem ist, aber das einzige seltsame Ding, das ich in Ihren Protokollen sehe ...

Ich war auf der Suche nach einem Chunked Transfer Problem (Chunked Transfer, Content Length und Reverse Proxy verwechseln normalerweise nicht naja) aber das scheint hier nicht der Fall zu sein ...