GNU/Linux >> Belajar Linux >  >> Ubuntu

Kompilasi Nginx dengan Modul ngx_pagespeed di Ubuntu 16.04

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.


Ubuntu
  1. Instal Nginx dengan ngx_pagespeed di CentOS 7

  2. Cara Mengamankan Nginx dengan Letsencrypt di Ubuntu 20.04

  3. Instal PHP 7.1 dengan Nginx di Ubuntu 16.04

  1. Ubuntu 20.04:WordPress dengan instalasi Nginx

  2. Cara Menginstal WordPress dengan Nginx di Ubuntu 18.04

  3. Terapkan Modsecurity dengan Nginx di Ubuntu 20.04 LTS

  1. Cara Menginstal phpMyAdmin dengan Nginx di Ubuntu 18.04

  2. Cara Menginstal MediaWiki dengan Nginx di Ubuntu 16.04

  3. Cara Menginstal Magento dengan Nginx di Ubuntu 15.10