GNU/Linux >> Belajar Linux >  >> Debian

Cara Memasang Nginx Google Pagespeed di Debian 11 Bullseye

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.

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.

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 keluaranPSOL_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 dibuatngx_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_kepalaMenambahkan elemen ke dokumen jika belum ada.
  • gabungkan_cssMenggabungkan beberapa elemen CSS menjadi satu.
  • gabungkan_javascriptMenggabungkan beberapa elemen skrip menjadi satu.
  • convert_meta_tagsMenambahkan header respons untuk setiap tag meta dengan atribut http-equiv.
  • perpanjang_cacheMemperpanjang masa pakai cache CSS, JS, dan sumber daya gambar yang belum dioptimalkan dengan menandatangani URL dengan hash konten.
  • fallback_rewrite_css_urlsMenulis ulang sumber daya yang direferensikan dalam file CSS apa pun yang tidak dapat diuraikan dan diperkecil.
  • flatten_css_importsCSS sebaris dengan meratakan semua aturan @import.
  • inline_cssMenyejajarkan file CSS kecil ke dalam dokumen HTML.
  • inline_import_to_linkSebaris