Install Nginx with Ngx_pagespeed on CentOS 7

Introduction

Ngx-pagespeed is an open source Nginx module that speeds up your site and reduces page load time. It does so by rewriting web pages to reduce latency and bandwidth. Ngx-pagespeed also provides many optimization filters that are used to optimize various files such as css, html, png, and jpg.

Prerequisites

  • A newly deployed Vultr instance running CentOS 7.
  • A sudo user.

Step 1: Update the system

Before installing any packages on your CentOS server instance, it is recommended to update the system. Login using the sudo user and run the following commands to update the system.

sudo yum -y update  
sudo reboot

Once the system has rebooted, log in again as the sudo user and continue with the next steps.

Step 2: Download dependencies

To install Nginx with ngx-pagespeed we have to compile Nginx from source. To do so we need to download some software by running the following command.

sudo yum -y install gcc-c++ pcre-devel zlib-devel make unzip

Next, we need to download the source code for Nginx and ngx-pagespeed. At the time of writing, the latest stable version of is Nginx 1.12.0 and the latest ngx-pagespeed version is 1.12.34.2.

NPS_VERSION=1.12.34.2
NGINX_VERSION=1.12.0
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
wget https://github.com/pagespeed/ngx_pagespeed/archive/v${NPS_VERSION}-beta.zip

Extract the downloaded packages.

tar -xvzf nginx-${NGINX_VERSION}.tar.gz
unzip v${NPS_VERSION}-beta.zip

Step 3: Download PageSpeed Optimization Libraries

The PageSpeed Optimization Libraries (psol) are required to compile Nginx. Download and extract them in the ngx-pagespeed source directory with the following commands.

cd ngx_pagespeed-${NPS_VERSION}-beta
psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.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})
cd ..

Step 4: Configure and compile Nginx

The Nginx source can now be compiled with the pagespeed module. Go to the Nginx source directory.

cd nginx-${NGINX_VERSION}

Configure the source with the following command.

./configure --add-module=$HOME/ngx_pagespeed-${NPS_VERSION}-beta --user=nobody --group=nobody --pid-path=/var/run/nginx.pid ${PS_NGX_EXTRA_FLAGS}

Once the configuration is completed, compile Nginx with the command:

sudo make

This can take several minutes. After that you can go ahead and install the software with the command:

sudo make install

Nginx has now been installed in the directory /usr/local/nginx. For convenience, we can create the following symlinks:

sudo ln -s /usr/local/nginx/conf/ /etc/nginx
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

Step 5: Create Startup Script

To be able to stop and start Nginx you have to manually create a startup script. A template for this is provided by Nginx here. Copy content of the template and insert it into the /etc/init.d/nginx file using a text editor such as nano. Also set the right permissions for the file.

sudo nano /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx

You can now start and then add it to the default runlevels (so Nginx starts and stops along with your instance) with the command:

sudo service nginx start
sudo systemctl enable nginx

Step 6: Enable ngx_pagespeed

To enable ngx-pagespeed, start by creating a cache directory and assigning ownership for it to Nginx:

sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R nobody:nobody /var/ngx_pagespeed_cache

Open the /etc/nginx/nginx.conf file:

sudo nano /etc/nginx/nginx.conf

And add the following lines within the server block:

##
# Pagespeed main settings

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

# Ensure requests for pagespeed optimized resources go to the pagespeed
# handler and no extraneous headers get set.

location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

Finally, restart Nginx for the changes to take effect:

sudo systemctl restart nginx

Step 6: Test

To check if ngx-pagespeed was properly installed on your server, run the following command:

curl -I -p http://localhost| grep X-Page-Speed

The outpout should looks like this:

X-Page-Speed: 1.12.34.2-0

Ngx-pagespeed is now installed on your server. If you don't get this outpout, make sure that you've enabled ngx-pagespeed as explained before.

CentOS,Linux Guides,System Admin,Web Servers

Pusti komentar

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več