In meinem Firefox oder Chrome, wenn ich den HTTP-Header überprüfe, ist das Ergebnis immer mit Content-Encoding: gzip. Aber ich habe Kunden berichten, dass sie stattdessen "Übertragung-Codierung: Chunked" sehen und die Anfrage nicht gezippt werden.CSS wird nicht immer gezippt warum?
http://www.example.com/public/css/style.min.css
Wenn ich oder der Kunde online eine gzip-Komprimierung tun überprüfen es bestätigt gzip ist aktiv.
https://checkgzipcompression.com = gzip!
Aber wenn ich einen Checker wie diesen verwende. http://onlinecurl.com/
ich auch die Transfer-Encoding erhalten:
Anfrage chunked:
GET /style/css.css HTTP/1.1
Host: www.example.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
User-Agent: ...
Accept:/
Referer: http://www.example.com/
Accept-Encoding: gzip, deflate
Accept-Language: ...
Cookie: ...
Antwort:
HTTP/1.1 200 OK
Age: 532948
cache-control: public, max-age=604800
Content-Type: text/css
Date: Wed, 28 Jun 2017 12:35:07 GMT
ETag: "5349e8d595dfd21:0"
Last-Modified: Wed, 07 Jun 2017 13:56:17 GMT
Server: Microsoft-IIS/7.5
Vary: X-UA,Accept-Encoding, User-Agent
X-Cache: HIT
X-Cache-Hits: 6327
X-CacheReason: Static-js-css.
X-Powered-By: ASP.NET
X-Served-By: ip-xxx-xxx-xxx-xx.name.xxx
x-stale: true
X-UA-Device: pc
X-Varnish: 993020034 905795837
X-Varnish-beresp-grace: 43200.000
X-Varnish-beresp-status: 200
X-Varnish-beresp-ttl: 604800.000
transfer-encoding: chunked
Connection: keep-alive
Warum werden einige Anfragen gzipped nicht, wenn es sollte, das ist mein Varnish config (der für gzip relevante Teil):
if (req.http.Accept-Encoding) {
if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|flv|swf)$") {
# No point in compressing these
remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
# unkown algorithm
remove req.http.Accept-Encoding;
}
}
# Enabling GZIP
if (beresp.http.Content-Type ~ "(text/css|application/x-javascript|application/javascript)") {
set beresp.do_gzip = true;
}
if (beresp.http.Content-Encoding ~ "gzip") {
if (beresp.http.Content-Length == "0") {
unset beresp.http.Content-Encoding;
}
}
set beresp.http.Vary = regsub(beresp.http.Vary, "(?i)^(.*?)X-Forwarded-URI,?(.*)$", "\1\2");
set beresp.http.Vary = regsub(beresp.http.Vary, "(?i)^(.*?)User-Agent,?(.*)$", "\1\2");
set beresp.http.Vary = regsub(beresp.http.Vary, "^(.*?),?$", "X-UA,\1");
set beresp.http.Vary = regsub(beresp.http.Vary, "^(.*?),?$", "\1");
Irgendwelche Ideen, danke.
Meine Anfrage enthält Accept-Encoding: gzip, deflate, aber die Antwort ist immer noch nicht gezippt und mit Transfer-Encoding: chunked – steffanjj
Ich denke, es wäre am besten, alle Ihre VCL zu posten. – SuperDuperApps
Der Beitrag wurde mit dem für gzip relevanten Teil aktualisiert. Lassen Sie mich wissen, wenn Sie die volle VCL benötigen. Vielen Dank. – steffanjj