ngx_pagespeed adalah modul Nginx open-source yang secara otomatis menerapkan praktik terbaik untuk mengoptimalkan kecepatan situs web. Pada tutorial kali ini, kita akan membahas bagaimana cara compile Nginx dengan modul ngx_pagespeed di Ubuntu 16.04 LTS.
1. Cadangkan File Konfigurasi Nginx
Setelah Nginx dikompilasi dan diinstal, file konfigurasi Nginx asli Anda akan ditimpa. Anda dapat menggunakan perintah berikut untuk mencadangkan file konfigurasi utama dan file blok server ke direktori home Anda. Tilde mewakili direktori home Anda.
cp /etc/nginx/nginx.conf /etc/nginx/sites-available/*.conf /etc/nginx/conf.d/*.conf ~
2. Tambahkan Repositori Nginx Resmi
Tutorial akan mendemonstrasikan kompilasi versi arus utama Nginx terbaru, 1.11.1 pada saat penulisan ini. Repositori Ubuntu 16.04 memiliki Nginx 1.10. Kami menambahkan repositori Nginx resmi seperti yang ditunjukkan di bawah ini.
Pertama ambil kunci Nginx GPG dan impor ke sistem Ubuntu 16.04.
wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key
Kemudian edit sources.list
berkas.
sudo nano /etc/apt/sources.list
Tambahkan dua baris berikut di akhir file ini. Baris deb-src memungkinkan kita untuk mengunduh paket sumber Nginx dengan apt source
perintah.
deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx
Tekan Ctrl+O untuk menyimpan file. Tekan Ctrl+X untuk menutup file. Kemudian perbarui indeks paket lokal.
sudo apt update
Sekarang repositori resmi Nginx ditambahkan ke Ubuntu 16.04.
3 Unduh Paket Sumber Nginx
Kami akan membuat nginx
direktori di bawah direktori home untuk menyimpan sumber Nginx dan kemudian cd ke direktori itu.
mkdir ~/nginx && cd ~/nginx
Instal dpkg-dev
dan unduh paket sumber Nginx dengan perintah di bawah ini:
sudo apt install dpkg-dev sudo apt source nginx
Periksa file yang diunduh.
ls ~/nginx/
Keluaran:
nginx-1.11.1 nginx_1.11.1-1~xenial.dsc nginx_1.11.1-1~xenial.debian.tar.xz nginx_1.11.1.orig.tar.gz
4. Unduh Paket Sumber ngx_pagespeed
Untuk mengkompilasi Nginx dengan modul ngx_pagespeed, kita juga membutuhkan paket sumber ngx_pagespeed. Buka halaman unduhan Github ngx_pagespeed. ( https://github.com/pagespeed/ngx_pagespeed/releases
) Unduh rilis beta terbaru ke direktori home Anda.
v1.11.33.2-beta pada saat penulisan ini. Anda mungkin perlu mengubah nomor versi.
cd ~ wget https://codeload.github.com/pagespeed/ngx_pagespeed/zip/v1.11.33.2-beta
buka zipnya:
sudo apt-get install unzip unzip v1.11.33.2-beta
cd ke direktori yang baru dibuat:
cd ngx_pagespeed-1.11.33.2-beta/
Kita juga perlu mengunduh pustaka psol. (Perpustakaan Pengoptimalan PageSpeed) dan ekstrak. Nomor versi sesuai dengan nomor versi kecepatan halaman.
wget https://dl.google.com/dl/page-speed/psol/1.11.33.2.tar.gz tar xvf 1.11.33.2.tar.gz
Ini akan membuat psol
direktori di bawah ngx_pagespeed-1.11.33.2-beta
direktori dan di situlah seharusnya.
5. Tambahkan Modul ngx_pagespeed ke Aturan Kompilasi Nginx
Edit file aturan kompilasi Nginx.
sudo nano ~/nginx/nginx-1.11.1/debian/rules
Di akhir COMMON_CONFIGURE_ARGS
bagian, tambahkan baris berikut. Ganti username
dengan nama pengguna Anda yang sebenarnya. Baris ini menentukan lokasi modul ngx_pagespeed.
--add-module=/home/username/ngx_pagespeed-1.11.33.2-beta
Tutorial ini mengunduh halaman sumber ngx_pagespeed ke direktori home. Jika Anda menggunakan akun root, maka ganti /home/username
dengan /root
. karena direktori home untuk root user adalah /root
.
Perhatikan juga bahwa Anda perlu menambahkan garis miring terbalik di --with-ld-opt
garis seperti screenshot di bawah ini. Jika tidak, –add-module baris yang Anda tambahkan akan diabaikan saat Nginx sedang dikompilasi.
Sekarang simpan dan tutup file.
6. Mulai Kompilasi !
Pastikan Anda berada di direktori sumber Nginx.
cd ~/nginx/nginx-1.11.1/
Instal semua dependensi yang diperlukan untuk membangun paket deb Nginx kami.
sudo apt build-dep nginx
Sekarang gunakan perintah berikut untuk membangun paket deb.
sudo dpkg-buildpackage -b
Ambil secangkir kopi dan tunggu beberapa menit. Pada VPS OpenVZ inti tunggal, proses pembuatan ini memakan waktu sekitar 20 menit. Setelah selesai, akan ada 7 file deb di ~/nginx/ direktori. Kita hanya perlu menginstal nginx_1.11.1-1~xenial_amd64.deb
atau nginx_1.11.1-1~xenial_i386.deb
paket, tergantung pada arsitektur OS Anda. Yang lainnya adalah paket modul dinamis Nginx dan paket debug. Anda juga dapat menginstalnya jika mau.
Jika Anda telah menginstal Nginx sebelumnya, saatnya untuk menghapus versi lama dan kemudian menginstal versi baru.
sudo apt remove nginx nginx-common nginx-full cd ~/nginx sudo dpkg -i nginx_1.11.1-1~xenial_amd64.deb
atau
sudo dpkg -i nginx_1.11.1-1~xenial_i386.deb
Sekarang mari kita mulai Nginx.
sudo systemctl start nginx
Jika Anda melihat pesan kesalahan berikut.
Failed to start nginx.service: Unit nginx.service is masked.
Kemudian buka kedok nginx dan jalankan perintah start lagi.
sudo systemctl unmask nginx
Perhatikan bahwa proses Nginx mungkin berjalan sebagai pengguna nginx
atau www-data
. Ini dapat diubah dengan mengedit baris pertama di /etc/nginx/nginx.conf
mengajukan. Pastikan Nginx berjalan sebagai pengguna yang sama dengan PHP-FPM.
Sekarang periksa argumen konfigurasi Nginx.
sudo nginx -V
Jika Anda melihat baris berikut di akhir maka modul ngx_pagespeed berhasil ditambahkan ke Nginx.
--add-module=/home/username/ngx_pagespeed-1.11.33.2-beta
7. Aktifkan Modul ngx_pagespeed
PageSpeed diinstal bersama dengan Nginx, tetapi dinonaktifkan secara default. Sebelum mengaktifkannya, saya sarankan Anda untuk menguji kecepatan situs web Anda di pingdom.com atau pagestest.org. Perhatikan ukuran halaman, jumlah permintaan, waktu buka halaman, dll. Setelah PageSpeed diaktifkan, lakukan pengujian lagi untuk membandingkan kedua hasil tersebut.
Buat folder untuk cache pagespeed dan ubah kepemilikannya menjadi pengguna Nginx (www-data atau nginx) sehingga dapat ditulis oleh Nginx.
sudo mkdir -p /var/ngx_pagespeed_cache sudo chown -R www-data:www-data /var/ngx_pagespeed_cache
Sekarang edit file konfigurasi blok server Nginx.
sudo nano /etc/nginx/conf.d/your-domain.conf
Tambahkan arahan kecepatan halaman berikut di bagian server.
# enable pagespeed module on this server block pagespeed on; # Needs to exist and be writable by nginx. Use tmpfs for best performance. 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 ~ "^/pagespeed_static/" { } location ~ "^/ngx_pagespeed_beacon$" { } pagespeed RewriteLevel CoreFilters;
Jika Anda menghosting beberapa situs web di satu server, tambahkan arahan kecepatan halaman di atas ke setiap file konfigurasi blok server untuk mengaktifkan kecepatan halaman di masing-masingnya.
Direktif terakhir mengatur CoreFilters
sebagai tingkat penulisan ulang. PageSpeed menawarkan 3 level penulisan ulang:CoreFilter
, PassThrough
dan OptimizeForBandwidth
. CoreFilter
adalah default karena berisi filter yang dianggap aman untuk sebagian besar situs web.
CoreFilter
berisi filter berikut.
add_head combine_css combine_javascript convert_meta_tags extend_cache fallback_rewrite_css_urls flatten_css_imports inline_css inline_import_to_link inline_javascript rewrite_css rewrite_images rewrite_javascript rewrite_style_attributes_with_url
Simpan dan tutup file konfigurasi blok server Anda. Kemudian muat ulang Nginx.
sudo systemctl reload nginx
8. Periksa apakah PageSpeed berfungsi
Buka situs web Anda. Refresh beberapa kali lalu periksa sumber halaman Anda. Tekan Ctrl+F kunci dan telusuri kecepatan halaman . Anda akan melihat bahwa banyak sumber daya situs web Anda telah diproses oleh kecepatan halaman. Beberapa file css dan file javascript digabungkan menjadi satu file. Jika Anda menggunakan browser Google Chrome, Anda akan melihat bahwa gambar di situs web Anda telah dikonversi ke webp format. webp dapat sangat mengurangi ukuran file gambar.
Anda juga dapat menemukan bahwa ngx_pagespeed berfungsi dengan membandingkan uji kecepatan situs web Anda.
Juga di server Anda, Anda dapat mengeluarkan perintah berikut:
curl -I -p http://your-domain.com| grep X-Page-Speed
Anda akan melihat X-Page-Speed dan nomor versinya.
X-Page-Speed: 1.11.33.2-7423
9. Tahan Nginx agar Tidak Ditingkatkan
Jika versi Nginx yang lebih baru tersedia di repositori, upgrade apt-get perintah akan memutakhirkan Nginx secara default dan modul ngx_pagespeed Anda akan hilang. Jadi kita perlu mencegah Nginx diupgrade. Ini dapat dicapai dengan perintah berikut:
sudo apt-mark hold nginx
Untuk menunjukkan paket apa yang ditahan:
apt-mark showhold
Beberapa arahan kecepatan halaman yang mungkin ingin Anda tambahkan di file konfigurasi blok server Nginx yang tidak ada di CoreFilters.
pagespeed EnableFilters collapse_whitespace; pagespeed EnableFilters lazyload_images; pagespeed EnableFilters insert_dns_prefetch;
Jangan lupa untuk memuat ulang Nginx setelah Anda mengubah file konfigurasi blok server.
Untuk penjelasan rinci tentang setiap filter, buka halaman Filter Google PageSpeed.
Komentar, pertanyaan atau saran selalu diterima. Jika menurut Anda postingan ini bermanfaat, silakan bagikan dengan teman-teman Anda di media sosial! Nantikan tutorial Linux lainnya.