Mod_pagespeed is an open-source Apache HTTP Server (or Nginx) module, which automatically applies chosen filters to pages and associated assets such as stylesheets, JavaScript, and HTML files, as well as to images and website cache requirements.
One major advantage of this module is that it does not require modifications to existing content or workflow, meaning that all internal optimizations and changes to files are made on the server side, presenting modified files directly to the user. Each of 40+ filters correspond to one of Google’s web performance best practices rules.
Tested with Nginx on CentOS 8:
- Follow the official documentation concerning the module installation from https://www.modpagespeed.com/doc/build_ngx_pagespeed_from_source (see the “Build instructions” section):
- Check https://www.modpagespeed.com/doc/release_notes for the latest version (as of today it is “1.13.35.2-stable“):
How to install the Pagespeed Nginx module in Directadmin
To install our basic dependencies, run:
- RedHat, CentOS, or Fedora
-
sudo yum install gcc-c++ pcre-devel zlib-devel make unzip libuuid-devel
- Ubuntu or Debian
-
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev
NPS_VERSION=1.13.35.2-stable
cd
wget https://github.com/apache/incubator-pagespeed-ngx/archive/v${NPS_VERSION}.zip
unzip v${NPS_VERSION}.zip
nps_dir=$(find . -name "*pagespeed-ngx-${NPS_VERSION}" -type d)
cd "$nps_dir"
NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
NPS_RELEASE_NUMBER=${NPS_VERSION/stable/}
psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
[ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
wget ${psol_url}
tar -xzvf $(basename ${psol_url})
- Customize the Nginx config file to add the external module:
config if webserver is nginx
cd /usr/local/directadmin/custombuild/
mkdir -p custom/nginx
cp configure/nginx/configure.nginx custom/nginx/
config if webserver is nginx_apache
cd /usr/local/directadmin/custombuild/
mkdir -p custom/nginx_reverse
cp configure/nginx_reverse/configure.nginx custom/nginx_reverse/
Open the custom/nginx/configure.nginx
file and add the following option before the last string:
"--add-module=/root/incubator-pagespeed-ngx-1.13.35.2-stable" \
And build nginx or nginx_apache
./build update
./build nginx
When completed, you should see the “–add-module=/root/incubator-pagespeed-ngx-1.13.35.2-stable” in the output of:
nginx -V
- Create the working directory:
mkdir -p /var/cache/ngx_pagespeed
Open the /etc/nginx/nginx-includes.conf
file and add the following to enable the module globally:
pagespeed on;
pagespeed FileCachePath /var/cache/ngx_pagespeed;
pagespeed EnableFilters flatten_css_imports;
Restart nginx:
service nginx restart
- Test if it is working with:
curl -Is domain.com | grep X-Page-Speed