Google Modul PageSpeed , juga dikenal sebagai mod_PageSpeed, adalah paket tingkat server Apache HTTP atau Nginx open-source dengan modul yang membantu mengoptimalkan situs Anda menggunakan berbagai filter ke halaman yang mengoptimalkan lembar gaya server, JavaScript, dan file serta gambar HTML melalui caching dan penulisan ulang di antara yang teratas fitur.
Dalam tutorial berikut, Anda akan mempelajari cara menginstal dan melakukan pengaturan dasar dengan Nginx Pagespeed di Debian 11 Bullseye.
Perbarui Sistem Debian
Perbarui Debian . Anda sistem operasi untuk memastikan semua paket yang ada mutakhir:
sudo apt update && sudo apt upgrade -y
Instal Dependensi
Gunakan perintah berikut untuk menginstal atau memeriksa apakah paket telah diinstal.
sudo apt install apt-transport-https unzip wget curl git dpkg-dev uuid-dev make build-essential gnupg2 ca-certificates lsb-release debian-archive-keyring -y
Instal Nginx Mainline atau Stabil Terbaru
Untuk kecepatan halaman, Anda perlu mengkompilasi sumber Nginx tetapi mengingat Anda mencoba meningkatkan kecepatan situs Anda, dan sangat disarankan untuk mengimpor dan menginstal versi Nginx terbaru yang tersedia antara jalur utama atau stabil.
Nginx merekomendasikan untuk menggunakan versi arus utama, tetapi versi stabilnya juga cocok untuk pengguna yang tidak terlalu ingin meningkatkan versi.
IMPOR HANYA 1 REPOSITORY, BUKAN KEDUANYA.
Opsi 1 – Impor Nginx Mainline (Disarankan)
curl -sSL https://packages.sury.org/nginx-mainline/README.txt | sudo bash -x
Opsi 2 – Impor Nginx Stable
curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x
Selanjutnya, jalankan update apt update to sync.
sudo apt update
Sekarang mulailah menginstal Nginx; tutorial akan menginstal nginx mainline .
sudo apt install nginx-core nginx-common nginx nginx-full -y
Aktifkan layanan menggunakan perintah berikut.
sudo systemctl enable nginx --now
Dalam repositori yang diimpor, Anda akan melihat modul tambahan yang tersedia dalam versi ini, terutama dukungan brotli, yang dapat Anda instal dengan langkah-langkah berikut di bawah ini.
Buka nginx.conf . Anda file konfigurasi:
nano /etc/nginx/nginx.conf
Sekarang tambahkan baris tambahan sebelumnya di HTTP{} bagian:
brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;
Selanjutnya, jalankan dry run Nginx.
sudo nginx -t
Outputnya harus seperti contoh di bawah ini; jika tidak, perbaiki kesalahan yang Anda buat dan perbaiki.
Contoh:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mulai ulang layanan Nginx agar perubahan dapat ditayangkan.
sudo systemctl restart nginx
Unduh Paket Sumber Nginx
Anda perlu mengompilasi “modul ngx_pagespeed “ dari sumber sebagai modul dinamis. Jika Anda belum pernah melakukan ini sebelumnya, kami akan membahas cara membuat direktori untuk Anda kompilasi untuk modul ini hari ini dan di masa mendatang. Setiap kali Anda memperbarui Nginx melalui pengelola paket APT, Anda harus mengunduh ulang sumber dan mengompilasi ulang modul dinamis.
Pertama, secara default, deb-src repositori tidak ditambahkan dan diaktifkan. Ini perlu diimpor dan ditambahkan sebelum Anda dapat mengunduh sumber Nginx, atau itu akan mengambil versi yang salah.
Opsi 1 – Sumber Deb Arus Utama Nginx
echo "deb-src https://packages.sury.org/nginx-mainline/ bullseye main
" | sudo tee -a /etc/apt/sources.list.d/nginx-mainline.list
Opsi 2 – Sumber Debit Stabil Nginx
echo "deb-src https://packages.sury.org/nginx-mainline/ bullseye main" | sudo tee -a /etc/apt/sources.list.d/nginx.list
Selanjutnya, jalankan pembaruan APT untuk menyinkronkan tambahan baru.
sudo apt update
Buat direktori sumber Nginx.
sudo mkdir -p /usr/local/src/nginx
Sekarang buka direktori yang baru Anda buat dengan CD.
cd /usr/local/src/nginx
Selanjutnya, unduh paket sumber Nginx sesuai perintah sudo di bawah ini.
sudo apt source nginx
Perhatikan bahwa Anda akan melihat pesan yang ditolak. Ini dapat diabaikan.
Contoh:

Selanjutnya, ketik perintah berikut untuk mengonfirmasi bahwa sumber telah diunduh.
ls -l
Outputnya harus, misalnya.

Klon ngx_pagespeed Repositori
Di bagian panduan selanjutnya, Anda harus mengunduh “ngx_pagespeed” paket sumber. Disarankan untuk mengkloning sumber kecepatan halaman menggunakan Git, karena Anda dapat dengan mudah menarik pembaruan nanti dan mengompilasi ulang di masa mendatang.
Di bagian ini, Anda memiliki dua opsi saat ini v1.13.35.2-stable cabang repositori atau v1.14.33.1-RC1 cabang pra-rilis. Keduanya sekarang memiliki masalah. Sarannya adalah mengunjungi Git dan membaca daftar masalah saat ini untuk melihat apakah ada yang lebih memengaruhi Anda daripada yang lain.
Tutorial menemukan menginstal versi pra-rilis bekerja paling baik. Betapapun stabilnya mungkin lebih menguntungkan Anda, ini adalah panggilan yang sulit untuk dilakukan.
Pertama, masukkan CD ke direktori:
cd /usr/local/src
Sekarang kloning sumber git ngx_pagespeed:
sudo git clone https://github.com/apache/incubator-pagespeed-ngx.git
Bagian selanjutnya dapat dilakukan dengan dua cara berbeda, stabil atau pra-rilis. Keduanya akan tercantum di bawah ini.
Opsi 2. Unduh ngx_pagespeed Stabil
CD ke dalam ngx_pagespeed yang baru dikloning sumber, periksa cabang stabil terbaru.
cd incubator-pagespeed-ngx
Lihat rilis kecepatan halaman terbaru yang stabil.
sudo git checkout latest-stable
Sekarang, Anda akan melihat di akhir keluaran “PSOL_BINARY_URL “ dicetak. Tautan unduhan URL PSOL adalah pustaka pengoptimalan kecepatan halaman yang perlu diunduh dari cabang yang Anda gunakan, checkout GIT.
Untuk menemukan URL perpustakaan yang akan diunduh, ketik perintah berikut untuk membukanya.
Gunakan perintah cat untuk menemukan URL:
cat PSOL_BINARY_URL
Contoh keluaran:
https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
Perhatikan bahwa output memiliki “$BIT_SIZE_NAME “ . Untuk ini, kebanyakan orang akan menjadi x64 .
Selanjutnya, unduh Pustaka Pengoptimalan PageSpeed (PSOL) untuk melanjutkan.
sudo wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz
Sekarang ekstrak arsip. Ini akan membuat “psol ” direktori secara otomatis dan ekstrak file. Anda akan mendapatkan cetakan daftar panjang, tetapi semua pustaka siap untuk dikompilasi sebagai modul dinamis dengan sumber Nginx Anda setelah selesai.
sudo tar xvf 1.13.35.2-x64.tar.gz
Opsi 2. Unduh Pra-Rilis ngx_pagespeed
Proses untuk menggunakan modul ngx_pagespeed pra-rilis dan pustaka PSOL tetap sama seperti cabang stabil. Jadi yang akan Anda lakukan hanyalah mengubah beberapa opsi seperti di bawah ini.
CD ke sumber clone ngx_pagespeed, periksa cabang pra-rilis terbaru. Perhatikan cabang pra-rilis kemungkinan besar akan berubah di masa mendatang.
Oleh karena itu, Anda harus mengunjungi cabang proyek Github dan temukan yang terbaru. Saat ini, cabang 36 adalah cabang pra-rilis dengan “v1.14.33.1-RC1 “ . Kami akan melewatkan langkah tentang kloning, lihat kembali "stabil" untuk instruksi.
cd incubator-pagespeed-ngx
Lihat cabang kecepatan halaman pra-rilis bernomor 36:
sudo git checkout 36
Sekarang, Anda akan melihat di akhir keluaran “PSOL_BINARY_URL “ dicetak. Tautan unduhan URL PSOL adalah pustaka pengoptimalan kecepatan halaman yang perlu diunduh dari cabang yang Anda gunakan, checkout GIT.
Untuk menemukan URL perpustakaan yang akan diunduh, ketik perintah berikut untuk membukanya.
cat PSOL_BINARY_URL
Contoh keluaran:
https://dist.apache.org/repos/dist/release/incubator/pagespeed/1.14.36.1/x64/psol-1.14.36.1-apache-incubating-$BIT_SIZE_NAME.tar.gz
Perhatikan bahwa output memiliki “$BIT_SIZE_NAME “ . Ini untuk, kebanyakan orang akan menjadi x64.
Selanjutnya, unduh Pustaka Pengoptimalan PageSpeed (PSOL) untuk melanjutkan.
wget https://dist.apache.org/repos/dist/release/incubator/pagespeed/1.14.36.1/x64/psol-1.14.36.1-apache-incubating-$BIT_SIZE_NAME.tar.gz
Ekstrak arsip.
sudo tar xvf psol-1.14.36.1-apache-incubating-x64.tar.gz
Kompilasi Nginx dengan Modul ngx_pagespeed
Selanjutnya, Anda akan mengkompilasi sumber Nginx yang Anda unduh dengan modul ngx_pagespeed yang Anda unduh dengan pustaka PSOL.
Pertama, CD ke direktori sumber Nginx Anda. Perhatikan bahwa nomor versi Nginx mungkin berbeda.
Hanya contoh:
cd /usr/local/src/nginx/nginx-1.21.4/
Selanjutnya, instal dependensi build untuk sumber Nginx.
sudo apt build-dep nginx -y
Sekarang Anda akan mengkompilasi modul ngx_pagespeed dengan “–dengan-bendera kompak “ . Proses ini akan membuat modul file masa depan “ngx_pagespeed.so “ kompatibel dengan server Nginx aktif Anda.
sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/incubator-pagespeed-ngx
Selanjutnya, gunakan perintah buat modul . Proses ini akan berlangsung paling lama sekitar 1 menit.
sudo make modules
Sekarang, salin yang baru dibuat “ngx_pagespeed.so” modul ke direktori server Nginx aktif Anda. Lokasi dapat bervariasi tergantung pada penginstalan Anda, tetapi kebanyakan orang harus sama.
sudo cp objs/ngx_pagespeed.so /etc/nginx/modules/
Alternatif:
sudo cp objs/ngx_pagespeed.so /usr/share/nginx/modules/
Muat Modul ngx_pagespeed di Nginx
Sekarang saatnya memuat modul ngx_pagespeed di Nginx. Kami akan menggunakan editor teks nano untuk ini. Pertama, buka “nginx.conf . Anda “ berkas.
sudo nano /etc/nginx/nginx.conf
Sekarang, tambahkan baris berikut.
load_module modules/ngx_pagespeed.so; ##### insert with other modules ###
Contoh:

Untuk menyelesaikan, uji konfigurasi Nginx Anda di perintah dry run, lalu jika ok restart server Nginx.
sudo nginx -t
Contoh:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Jika sintaks Nginx ok, mulai ulang layanan Nginx:
sudo systemctl restart nginx
Buat Cache PageSpeed
Sebelum mengonfigurasi filter, Anda perlu membuat direktori cache untuk kecepatan halaman Nginx untuk menyimpan file cache dan konversi gambar. Ini dapat diubah ke lokasi yang Anda pilih; namun, kami akan membuatnya di bawah folder Nginx untuk panduannya.
Buat direktori cache:
sudo mkdir -p /etc/nginx/ngx_pagespeed_cache
Tetapkan pengguna www-data sebagai pemilik (penting):
sudo chown -R www-data:www-data /etc/nginx/ngx_pagespeed_cache
Pengaturan PageSpeed Filer
Sekarang, ada beberapa cara untuk mengatur filter kecepatan halaman Anda, dan tidak ada yang benar atau salah. Namun, contoh akan membuat “pagespeed.conf” file konfigurasi untuk tutorial ini.
Alasan untuk ini adalah karena fakta konfigurasi kecepatan halaman bisa rumit dan seringkali dapat merusak situs web. Jika Anda ingin mengembalikan modul kecepatan halaman dengan cepat, Anda dapat mengomentari dengan menyertakan pagespeed.conf baris di blok server Anda.
Buat file pagespeed.conf:
sudo nano /etc/nginx/modules-available/pagespeed.conf
Selanjutnya, kita akan membahas filter utama yang disiapkan dengan aman untuk sebagian besar situs web. Namun, ini dapat diubah dan dimodifikasi menjadi sejumlah besar opsi berbeda di masa mendatang, tetapi Anda perlu meneliti ini dengan mengunjungi dokumentasi dengan cermat.
###enable pagespeed on the server block###
pagespeed on;
pagespeed Domain https://www.example.com;
pagespeed Domain https://example.com;
###Add this line if your website runs on HTTPS###
pagespeed FetchHttps enable;
###Set up admin location###
admin console
pagespeed Statistics on;
pagespeed StatisticsLogging on;
pagespeed StatisticsLoggingIntervalMs 60000;
pagespeed StatisticsLoggingMaxFileSizeKb 1024;
pagespeed MessageBufferSize 100000;
pagespeed LogDir /var/log/pagespeed;
pagespeed AdminPath /pagespeed_admin;
###SECURE THE LOCATION FROM BAD BOTS AND MALICOUS ACTORS###
location ~ ^/pagespeed_admin {
allow 127.0.0.1;
allow your-own-IP-address;
deny all;
}
###Specify the file cache folder that you created earlier###
pagespeed FileCachePath /etc/nginx/ngx_pagespeed_cache;
###Set the cache settings, you can play around with these numbers###
pagespeed FileCacheSizeKb 102400;
pagespeed FileCacheCleanIntervalMs 3600000;
pagespeed FileCacheInodeLimit 500000;
pagespeed LRUCacheKbPerProcess 1024;
pagespeed LRUCacheByteLimit 16384;
###OPTIONAL: use Memcached to further increase performance of pagespeed###
pagespeed MemcachedThreads 1;
pagespeed MemcachedServers "localhost:11211";
###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 ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
###Set the most common safe filters###
pagespeed RewriteLevel CoreFilters;
Sekarang, Anda mungkin telah memperhatikan bahwa kami mengganti nama di direktori kecepatan halaman yang baru dibuat menjadi file pengaturan “pagespeed-example.com.conf .” Ini dilakukan seolah-olah Anda meng-host beberapa situs web di server yang sama. Beberapa mungkin memerlukan penyesuaian kecepatan halaman yang berbeda, jadi memisahkan file penyiapan akan membuat penyiapan Anda tidak berantakan.
Opsi filter yang ditetapkan adalah "CoreFilters" sebagai level penulisan ulang. Secara keseluruhan, PageSpeed menawarkan tiga tingkat penulisan ulang:“CoreFilters, PassThrough, dan OptimizeForBandwidth” . Seperti yang mungkin Anda perhatikan dari komentar asli, “CoreFilters” aman untuk sebagian besar situs web dan digunakan sebagai default untuk pengujian.
Corefilter terdiri dari:
- tambahkan_kepala – Menambahkan elemen ke dokumen jika belum ada.
- gabungkan_css – Menggabungkan beberapa elemen CSS menjadi satu.
- gabungkan_javascript – Menggabungkan beberapa elemen skrip menjadi satu.
- convert_meta_tags – Menambahkan header respons untuk setiap tag meta dengan atribut http-equiv.
- perpanjang_cache – Memperpanjang masa pakai cache CSS, JS, dan sumber daya gambar yang belum dioptimalkan dengan menandatangani URL dengan hash konten.
- fallback_rewrite_css_urls – Menulis ulang sumber daya yang direferensikan dalam file CSS apa pun yang tidak dapat diuraikan dan diperkecil.
- flatten_css_imports – CSS sebaris dengan meratakan semua aturan @import.
- inline_css – Menyejajarkan file CSS kecil ke dalam dokumen HTML.
- inline_import_to_link – Sebaris Tag hanya terdiri dari CSS @imports dengan mengubahnya menjadi setara tag.
- inline_javascript – Menyejajarkan file JS kecil ke dalam dokumen HTML.
- tulis ulang_css – Menulis ulang file CSS untuk menghapus spasi dan komentar berlebih, dan, jika diaktifkan, menulis ulang atau memperluas cache gambar yang dirujuk dalam file CSS. Dalam mode OptimizeForBandwidth, minifikasi terjadi di tempat tanpa mengubah URL.
- rewrite_images – Mengoptimalkan gambar, mengkodekan ulang, menghapus piksel berlebih, dan menyejajarkan gambar kecil. Dalam mode OptimizeForBandwidth, minifikasi terjadi di tempat tanpa mengubah URL.
- tulis ulang_javascript – Menulis ulang file JavaScript untuk menghapus spasi dan komentar berlebih. Dalam mode OptimizeForBandwidth, minifikasi terjadi di tempat tanpa mengubah URL.
- tulis ulang_style_attributes_with_url – Tulis ulang CSS dalam atribut gaya jika berisi teks ‘url(‘ dengan menerapkan filter rewrite_css yang dikonfigurasi ke dalamnya.
Sekarang, Anda dapat meningkatkan CoreFilters lebih jauh dengan menambahkan lebih banyak filter. Namun, saya akan menyarankan untuk melakukan penelitian karena lebih banyak filter sama dengan lebih banyak risiko kerusakan situs web Anda. Ini adalah seni yang bagus untuk menggunakan kecepatan halaman google, contoh di bawah dari beberapa opsi tambahan.
###css optimization filters###
pagespeed EnableFilters outline_css;
pagespeed EnableFilters inline_google_font_css;
pagespeed EnableFilters move_css_above_scripts;
pagespeed EnableFilters move_css_to_head;
pagespeed EnableFilters prioritize_critical_css;
###html optimization filters###
pagespeed EnableFilters combine_heads;
pagespeed EnableFilters collapse_whitespace;
pagespeed EnableFilters convert_meta_tags;
pagespeed EnableFilters elide_attributes;
pagespeed EnableFilters pedantic;
pagespeed EnableFilters remove_comments;
pagespeed EnableFilters remove_quotes;
pagespeed EnableFilters trim_urls;
###javascript optimization filters###
pagespeed EnableFilters canonicalize_javascript_libraries;
pagespeed EnableFilters defer_javascript;
###image optimization filters###
pagespeed EnableFilters dedup_inlined_images;
pagespeed EnableFilters inline_preview_images;
pagespeed EnableFilters resize_mobile_images;
pagespeed EnableFilters lazyload_images;
pagespeed EnableFilters strip_image_color_profile;
pagespeed EnableFilters strip_image_meta_data;
pagespeed EnableFilters jpeg_subsampling;
pagespeed EnableFilters convert_png_to_jpeg;
pagespeed EnableFilters resize_rendered_image_dimensions;
pagespeed EnableFilters insert_image_dimensions;
pagespeed NoTransformOptimizedImages on;
pagespeed EnableFilters sprite_images;
Setelah selesai, CTRL+O untuk menyimpan, lalu CTRL +X untuk keluar.
Tambahkan baris berikut, uji, dan mulai ulang setelah penyiapan selesai untuk menyertakan ini di blok server Anda.
sudo nano /etc/nginx/sites-available/example.com.conf
Tambahkan baris berikut untuk menyertakan filter:
include /etc/nginx/modules-available/pagespeed.conf;
Contoh:

Atau, cukup symlink dari modules-available ke modul-enabled , kedua opsi berfungsi tergantung pada apa yang Anda sukai.
Contoh:
sudo ln -s /etc/nginx/modules-available/pagespeed.conf /etc/nginx/modules-enabled/pagespeed.conf
INGAT HANYA GUNAKAN SATU METODE.
Uji server Nginx Anda sebelum memulai ulang:
sudo nginx -t
Jika sintaks Nginx Anda baik-baik saja dan tidak ada kesalahan, mulai ulang layanan Nginx:
sudo systemctl restart nginx
Dukungan Konversi WebP
Untuk menghasilkan gambar WebP, instal paket berikut di sistem Anda.
Dukungan WebP PHP 7.4:
sudo apt install imagemagick php7.4-imagick ffmpeg
Dukungan WebP PHP 8.0:
sudo apt install imagemagick php8.1-imagick ffmpeg
Dukungan PHP 8.1 WebP:
sudo apt install imagemagick php8.1-imagick ffmpeg
Bagi mereka yang tidak memiliki PHP 8.0 atau PHP 8.1, ini berarti Anda menggunakan repositori standar Debian. Ini dapat diperbaiki dengan mengimpor build PHP terbaru menggunakan perintah berikut.
curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
Selanjutnya, jalankan pembaruan APT untuk menyinkronkan tambahan baru.
sudo apt update
Sekarang jalankan kembali perintah-perintah itu seperti yang disebutkan sebelumnya. Pastikan untuk menyesuaikan pengaturan lain jika Anda melakukan peningkatan PHP yang signifikan.
Verifikasi ngx_pagespeed Beroperasi
Kerja keras telah terbayar. Sekarang Anda ingin melihat apakah PageSpeed berfungsi. Kita akan melakukannya dengan menggunakan perintah curl, seperti pada contoh di bawah ini.
curl -I -p https://www.example.com
Anda akan melihat pada output bagian ini sebagai berikut:
x-page-speed: 1.13.35.2-0
Preload ngx_pagespeed
Modul ngx_pagespeed tidak memiliki fungsi pramuat, yang dapat membuat frustasi karena memerlukan beberapa kunjungan sebelum item di-cache dan dioptimalkan secara memadai. Ini dapat menjadi lebih buruk jika Anda harus membersihkan cache beberapa kali sehari, meninggalkan tingkat pengoptimalan situs web Anda secara tidak wajar.
Namun, Anda memasukkan perintah berikut untuk mengambil semua halaman web Anda sebelumnya jika Anda telah menyiapkan ramdisk. Juga, Anda dapat mengatur ini pada cronjob untuk masa depan untuk dilakukan setiap jam, harian, atau mingguan.
Kunjungi Crontab.guru jika Anda memerlukan bantuan untuk membuat pengaturan waktu cron.
Pengaturan ramdisk kecepatan halaman pramuat:
sudo wget -m -p -E -k -P /tmp/preload/ https://www.example.com/
Tugas cronjob satu jam:
00 */1 * * * wget -m -p -E -k -P /tmp/preload/ https://www.example.com/
Bagi yang baru mengenal Linux dan Debian, untuk membuka Cron gunakan perintah berikut.
sudo crontab -e
Sumber Daya Komunitas untuk PageSpeed
- ModPageSpeed.com – Dokumentasi Resmi dan mungkin situs pertama yang harus Anda kunjungi untuk mendapatkan bantuan.
- PageSpeedGuide.com – Sumber informasi yang bagus tentang PageSpeed dan filter.
- ngx_pagespeed Google Group – Obrolan komunitas Google yang hebat di Nginx + PageSpeed