Magento is running on 1.9.x, and web server is Nginx having Varnish installed on it using Turpentine plugin. Site speed is very fine when running from any browser due to Varnish cache but page speed showing in Google PageSpeed Insights, GTmetrix or Pingdom all are specifically suggesting to "Leverage browser caching". I made the changes in /etc/nginx/conf.d/default.conf
& /etc/nginx/conf.d/mysite.conf
and restarted all services
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
log_not_found off;
}
But still getting the exact same result on page speed sites, so since I am running Varnish on port 80 I googled around and changed settings in /etc/varnish/default.vcl
& in /var/www/vhosts/example.com/httpdocs/var/default.vcl
to include and restarted all services
sub vcl_backend_response {
if (bereq.url ~ "\.(png|gif|jpg|swf|css|js)$") {
unset beresp.http.set-cookie;
set beresp.http.cache-control = "max-age = 2592000";
}
}
But intrestingly there is no change in page speed sites and all of them are still explicitly sugesting heavily to 'Leverage browser caching'. I even tried with different network connection/location thinking that there may be some issues with these websites but still the same result.
http://www.example.com/media/wysiwyg/images/image.PNG (expiration not specified) http://www.example.com/media/wysiwyg/images/image2.PNG (expiration not specified) http://www.example.com/widgets.js (30 minutes) http://www.example.com/analytics.js (2 hours) http://www.example.com/media/wysiwyg/images/image7.jpg (8 hours)
can someone please shed light on this and help me to resolve this issue? also Turpentine plugin is being used for having Varnish with Magento, do we need to look into that maybe?
Admin->Configuration->TURPENTINE->Caching Options->Static Caching->Force Static Asset Caching = Enable Admin->Configuration->TURPENTINE->Caching Options->Static Caching->Static Asset Extensions = css,js,jpe?g,png,gif,ico,swf Admin->Configuration->TURPENTINE->Caching Options->Static Caching->Use Simple Hash = Enable
– Farmi Mar 20 '16 at 18:49vcl_backend_response
are indeed causing thecache-control
header to be returned properly? – Aric Watson Mar 21 '16 at 16:59vcl_backend_response
at wrong place? can you tell me exactly where do I need to do this? should it be custom VCL file which I need to create in location where TURPENTINE is showing it in admin options? and than add this code at the very last lines of that file? or will TURPENTINE will generate the custom file itself? – Farmi Mar 26 '16 at 8:04vcl_backend_response
code to that file. Upload it to your server and apply it to the running Varnish configuration manually (not via Turpentine). Then clear caches and test a bit to see if themax-age = 2592000
header is being sent correctly and accomplishing what you want. If so, then we can figure out how to put into thecustom_include
VCL in Turpentine so it's included with Turpentine's generated VCL. – Aric Watson Mar 28 '16 at 15:56