Cara Memasang Nginx dengan Modul PageSpeed di Ubuntu 20.04 LTS

Hai, selamat datang di ChotibulStudio. Di artikel ini, saya ingin membahas cara memasang Nginx dengan modul PageSpeed di Ubuntu 20.04 LTS. Dengan menambahkan modul PageSpeed pada Nginx, diharapkan situs web Anda dapat bekerja lebih optimal lagi.

Seberapa optimal sih situs yang dijalankan dengan tambahan modul PageSpeed pada Nginx? Bukannya Nginx juga sudah ringan?

Karena saya sendiri baru mencoba memasang Nginx dengan modul PageSpeed di mesin virtual, tampaknya saya tidak bisa menjawab pertanyaan-pertanyaan di atas. Mungkin saya akan membahasnya dilain kesempatan.

Jadi, di artikel ini, saya ingin fokus mencatat cara memasang Nginx dengan modul PageSpeed di Ubuntu 20.04 LTS. Mari kita mulai dengan mengenal apa itu PageSpeed.

Apa itu PageSpeed?

PageSpeed merupakan sebuah modul web server bersumber kode terbuka yang dibuat oleh Google untuk mengoptimalkan situs Anda secara otomatis. Modul PageSpeed tersedia untuk dua layanan web server populer, yaitu Apache (mod_pagespeed) dan Nginx (ngx_pagespeed).

Menurut optiweb.com, PageSpeed dapat melakukan beberapa hal berikut:

  • Mengoptimalkan gambar.
  • Memperkecil HTML.
  • Mengecilkan dan menggabungkan CSS dan JavaScript.
  • Mengoptimalkan berkas caching.
  • Menggabungkan dan mengoptimalkan eksternal JavaScrript.
  • Dan masih banyak yang lainnya.

Langkah-langkah memasang Nginx dengan modul PageSpeed

Pasang Nginx

Langkah pertama adalah memasang Nginx. Untuk proses pemasangannya, kita akan menggunakan arsip paket personal atau PPA Nginx yang dipelihara oleh Ondrej Sury.

$ sudo add-apt-repository ppa:ondrej/nginx-mainline

Pasang Nginx dengan perintah berikut.

$ sudo apt install nginx nginx-{core,common,full}

Setelah proses pemasangan Nginx selesai, ubah pengaturan repositori Nginx agar dapat mengunduh kode sumber.

$ sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-focal.list

Hapus tanda pagar (#) yang ada dibagian baris deb-src.

deb http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu focal main
deb-src http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu focal main

Dengan menghilangkan tanda pagar atau komentar di baris deb-src, Anda bisa mengunduh kode sumber dari paket tertenu. Pada studi kasus ini, kita memerlukan kode sumber Nginx untuk menyusun kembali Nginx dengan paket modul PageSpeed.

Simpan konfigurasi lalu lakukan pembaruan pada daftar paket.

$ sudo apt update

Sekarang, silahkan periksa opsi konfigurasi Nginx. Pastikan disana terdapat opsi konfigurasi --with-compat. Anda memerlukannya nanti, untuk mengaktifkan kompatibilitas modul dinamis. Gunakan perintah berikut.

$ nginx -V

Cara memasang EngineX dengan modul PageSpeed di Ubuntu 20.04 LTS
Opsi konfiguasi Nginx


Sampai langkah ini, Anda sudah memasang Nginx yang sudah mendukung opsi konfigurasi --with-compat. Selanjutnya, Anda membutuhkan kode sumber Nginx untuk membangun dependensi yang diperlukan untuk menyusun modul PageSpeed.

Sebelum mengunduh kode sumber Nginx, Anda perlu membuat direktori khusus bernama nginx di /usr/local/src/. Direktori tersebut akan kita gunakan untuk menyimpan kode sumber Nginx.

$ sudo mkdir -p /usr/local/src/nginx

Ubah ke direktori sumber Nginx.

$ cd /usr/local/src/nginx

Pasang alat pengembangan pake Debian beserta kode sumber Nginx.

$ sudo apt install dpkg-dev
$ sudo apt source nginx

Periksa paket kode sumber yang telah diunduh.

$ ls /usr/local/src/nginx

Hasil unduhan kode sumber EngineX
Hasil unduhan kode sumber Nginx

Unduh dan pasang paket sumber ngx_pagespeed

Paket sumber PageSpeed untuk Nginx bernama ngx_pagespeed. Paket tersebut dapat diunduh melalui Git. Buat Anda yang belum memasang Git, Anda bisa memasangnya dengan perintah berikut.

$ sudo apt install git

Paket sumber ngx_pagespeed akan kita simpan di /usr/local/src/, jika Anda sebelumnya sudah berada di direktori /usr/local/src/nginx/, gunakan perintah berikut untuk beralih ke /usr/local/src/.

$ cd ..

Jika Anda berada di direktori home, Anda cukup menavigasikan perintah cd ke direktori yang dimaksud.

$ cd /usr/local/src/

Klon paket sumber ngx_pagespeed dari repositori Git.

$ sudo git clone https://github.com/apache/incubator-pagespeed-ngx.git

Setelah proses klon selesai, silahkan masuk ke direktori incubator-pagespeed-ngx.

$ cd incubator-pagespeed-ngx

Gunakan cabang latest-stable.

$ sudo git checkout latest-stable

Kita masih membutuhkan satu paket lagi. Paket tersebut bernama Pustaka Pengoptimalan PageSpeed atau PSOL. Untuk mengetahui URL unduhan paket tersebut, Anda bisa melihat isi dari berkas PSOL_BINARY_URL.

$ cat PSOL_BINARY_URL
https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz

Unduh paket PSOL dengan perintah berikut dan ubah bagian $BIT_SIZE_NAME-nya menjadi x64. Sesuai bit arsitektur Ubuntu 20.04 LTS, yaitu 64-bit.

$ sudo wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz

Ekstrak arsip berkas paket PSOL yang baru saja diunduh.

$ sudo tar xvf 1.13.35.2-x64.tar.gz

Sampai langkah ini, semua paket yang dibutuhkan sudah tersedia di mesin Anda. Langkah berikutnya adalah menyusun modul ngx_pagespeed.

Untuk penyusunan modul ngx_pagespeed, Silahkan masuk ke direktori kode sumber Nginx. Saya asumsikan, Anda masih berada di direktori incubator-pagespeed-ngx.

$ cd ../nginx/nginx-1.19.5/

Pasang dependensi untuk membangun Nginx.

$ sudo apt build-dep nginx
$ sudo apt install uuid-dev

Sesuai dengan acuan tutorial yang akan saya sebutkan di bagian referensi, Anda tidak perlu menyusun Nginx, melainkan hanya menyusun modul PageSpeed-nya saja. Dengan memanfaatkan opsi konfigurasi --with-compat, kita bisa membuat modul PageSpeed kompatibel dengan binary Nginx yang sudah ada.

Sekarang, lakukan konfigurasi lingkungan modul dinamis dengan perintah berikut.

$ sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/incubator-pagespeed-ngx

Berikutnya, bangun modul PageSpeed saja dengan perintah berikut ini.

$ sudo make modules

Perintah di atas memerlukan waktu beberapa saat sampai proses pembuatan modul selesai. Modul PageSpeed yang selesai dibuat akan disimpan di objs/ngx_pagespeed.so, silahan salin modul tersebut ke /usr/share/nginx/modules.

$ sudo cp objs/ngx_pagespeed.so /usr/share/nginx/modules/

Konfigurasi Nginx untuk memuat modul ngx_pagespeed 

Kita memasuki tahap akhir dari rangkaian tutorial cara memasang Nginx dengan modul PageSpeed di Ubuntu 20.04 LTS.

Agar modul ngx_pagespeed dapat dibaca oleh Nginx, Anda harus memuatnya di konfigurasi global Nginx dan mengaktifkan penggunaan PageSpeed di konfigurasi blok server.

Bagi Anda yang masih awam dengan Nginx, perlu Anda ketahui bahwa konfigurasi global Nginx terletak pada berkas nginx.conf. Sedangkan untuk konfigurasi blok server berada di direktori sites-available. Menurut saya seperti itu. CMIIW.

Pertama-tama, kita muat modul ngx_pagespeed di konfigurasi global Nginx. Eksekusi perintah berikut.

$ sudo nano /etc/nginx/nginx.conf

Pada permualaan konfigurasi, tambahkan baris berikut ini.

# Muat modul ngx_pagespeed
load_module modules/ngx_pagespeed.so;

Simpan konfigurasi yang sudah Anda buat.

Kedua, untuk mengaktifkan penggunaan PageSpeed, Anda perlu beberapa baris konfigurasi pada blok server. Namun, sebelum Anda mulai mengaktifkan penggunaan PageSpeed, Anda perlu mengkonfigurasi direktori cache PageSpeed.

Eksekusi perintah berikut.

$ sudo mkdir -p /var/ngx_pagespeed_cache

Ubah hak kepemilikan direktori ngix_pagespeed_cache ke Nginx.

$ sudo chown -R www-data:www-data /var/ngx_pagespeed_cache

Setelah Anda selesai menyiapkan direktori cache PageSpeed, sekarang Anda bisa mengaktifkan penggunaan PageSpeed pada server blok situs Anda. Eksekusi perintah berikut.

$ sudo nano /etc/nginx/sites-available/mysite.tld

Tambahkan baris konfigurasi berikut tepat dibawah subblok deny access to .htaccess dan tepat di atas simbol penutup blok server ("}").

...
# Pagespeed Configuration
#
pagespeed on;
pagespeed FileCachePath /var/ngx_pagspeed_cache/;
pagespeed RewriteLevel OptimizeForBandwidth;

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

location ~ "^/pagespeed_static/" {}
location ~ "^/ngx_pagespeed_beacon$" {}
pagespeed RewriteLevel CoreFilters;
...

Simpan konfigurasi yang sudah Anda buat. Eksekusi perintah berikut untuk memeriksa salah ketik.

$ sudo nginx -t

Jika pemeriksaan sintaksis konfigurasi sukses, berarti tidak ada salah ketik di konfiguras. Lanjutkan dengan memuat ulang layanan Nginx.

$ sudo systemctl restart nginx

Sampai langkah ini, instalasi dan konfigurasi Nginx dengan modul ngx_pagespeed telah selesai.

Uji coba hasil instalasi dan konfigurasi PageSpeed

Untuk memeriksa apakah modul ngx_pagespeed bekerja dengan baik, Anda bisa melakukan salah satu dari dua cara berikut.

1. Pengujian melalui Terminal

Ini salah satu cara paling gampang. Anda hanya memerlukan satu paket yang bernama cURL. Jika Anda belum memasang paket tersebut, Anda bisa memasangnya dengan perintah berikut.

$ sudo apt install curl

Untuk melakuan pengujian dengan bantuan cURL, Anda tinggal mengeksekusi perintah berikut.

$ curl -I -p http://domainanda.tld

atau

$ curl -I -p 192.168.1.1

Hasil pengujian dari pemasangan EngineX dengan modul PageSpeed dengan cURL
Hasil pengujian dari pemasangan Nginx dengan modul PageSpeed dengan cURL

2. Pengujian melalui peramban web

Pengujian melalui peramban web bisa dilakukan dengan menambah ekstensi. Hanya saja, setahu saya, ekstensi ini hanya berjalan di Chrome saja.

Nama ekstensi tersebut adalah Wappalyzer. Anda bisa memasang ekstensi tersebut melalui Chrome web store.

Setelah Wapplyzer terpasang, Anda tinggal mengaktifkannya saja.

Untuk mulai memeriksa apakah modul ngx_pagespeed sudah berjalan dengan baik, berikut langkah-langkahnya.

  1. Ketikkan domain atau alamat ip server Anda di bilah alamat Chrome.
  2. Klik ikon Wapplyzer. Wapplyzer akan menampilkan semua informasi yang digunakan oleh situs.
Hasil pengujian dari pemasangan EngineX dengan modul PageSpeed dengan Wapplyzer
Hasil pengujian dari pemasangan Nginx dengan modul PageSpeed dengan Wapplyzer

Sumber

How to Install PageSpeed Module with Nginx on Ubuntu 20.04, Ubuntu 18.04, tersedia daring di https://www.linuxbabe.com/nginx/compile-the-latest-nginx-with-ngx_pagespeed-module-on-ubuntu


Komentar

Postingan populer dari blog ini

Implementasi IPv6 TunnelBroker untuk Server WordPress Self Host

Daftar Rekomendasi Repositori Lokal Debian 11 "Bullseye"

Koneksi Internet Bermasalah di Ubuntu 18.04, Berikut Cara Memperbaikinya