From 8adb918189ec57bfe0ef75190e35b75ba6895aae Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 18 Jun 2019 09:01:08 +0100 Subject: [PATCH] Optimise loading of piwik javascript Serve it precompressed, and improve the cacheability. --- cookbooks/piwik/recipes/default.rb | 10 ++++++++++ cookbooks/piwik/templates/default/apache.erb | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/cookbooks/piwik/recipes/default.rb b/cookbooks/piwik/recipes/default.rb index 9064522bf..c8b9b101b 100644 --- a/cookbooks/piwik/recipes/default.rb +++ b/cookbooks/piwik/recipes/default.rb @@ -33,7 +33,9 @@ package "php-apcu" package "geoipupdate" +apache_module "expires" apache_module "php7.2" +apache_module "rewrite" version = node[:piwik][:version] @@ -56,6 +58,14 @@ execute "unzip-piwik-#{version}" do not_if { File.exist?("/opt/piwik-#{version}/piwik") } end +execute "/opt/piwik-#{version}/piwik/piwik.js" do + command "gzip -k -9 /opt/piwik-#{version}/piwik/piwik.js" + cwd "/opt/piwik-#{version}" + user "root" + group "root" + not_if { File.exist?("/opt/piwik-#{version}/piwik/piwik.js.gz") } +end + directory "/opt/piwik-#{version}/piwik/config" do owner "www-data" group "www-data" diff --git a/cookbooks/piwik/templates/default/apache.erb b/cookbooks/piwik/templates/default/apache.erb index 8f27414ba..58703f41b 100644 --- a/cookbooks/piwik/templates/default/apache.erb +++ b/cookbooks/piwik/templates/default/apache.erb @@ -31,4 +31,23 @@ Require all granted + + ExpiresActive On + RewriteEngine on + + RewriteCond "%{HTTP:Accept-encoding}" "gzip" + RewriteCond "%{REQUEST_FILENAME}\.gz" -s + RewriteRule "^(.*)\.js" "$1\.js\.gz" [QSA] + + RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-gzip:1] + + + Header append Content-Encoding gzip + Header append Vary Accept-Encoding + + + + ExpiresDefault "access plus 1 week" + Header set Cache-Control "max-age=604800" + -- 2.43.2