GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Nginx dengan Kompresi Brotli di Ubuntu 18.04 LTS

Nginx (engine-x) adalah server HTTP open source berkinerja tinggi, proxy terbalik, dan server proxy IMAP/POP3. Fitur luar biasa dari Nginx adalah stabilitas, kumpulan fitur yang kaya, konfigurasi sederhana, dan konsumsi memori yang rendah.

Brotli adalah algoritma kompresi open source yang dibuat oleh Google. Brotli memberikan kompresi yang lebih baik dan tanpa kerugian daripada gzip, dan sekarang didukung oleh browser dan server web utama.

Selengkapnya tentang kinerja Brotli:

  • Pos blog Akamai.
  • Postingan Cloudflare tentang Brotli.
  • Pos blog Mozilla.

Dalam tutorial ini, saya akan menunjukkan langkah demi langkah cara menambahkan dukungan untuk algoritma kompresi Brotli di server web Nginx. Kami akan membangun paket nginx khusus yang mendukung algoritma kompresi brotli. Kami akan menggunakan versi Ubuntu terbaru, ditambah lagi kami akan membuat paket nginx untuk sistem operasi Debian.

Prasyarat

  • Ubuntu 18.04
  • Hak istimewa root

Apa yang akan kita lakukan?

  1. Instal Ketergantungan Build
  2. Instal Nginx dengan ngx_brotli
    • Tambahkan Repositori Nginx
    • Unduh Nginx dan ngx_brotli
    • Bangun Nginx dengan Dukungan ngx_brotli
    • Instal Nginx dan Aktifkan Dukungan ngx_brotli
  3. Konfigurasi Nginx Virtual Host
  4. Pengujian

Langkah 1 - Instal Ketergantungan Build

Hal pertama yang kita perlukan untuk panduan ini adalah menginstal dependensi build ke sistem.

Perbarui repositori Ubuntu lalu instal semua paket dependensi build menggunakan perintah apt di bawah ini.

sudo apt update
sudo apt install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

Tunggu hingga semua paket terinstal.

Langkah 2 - Instal Nginx dengan ngx_brotli

Pada langkah ini, kita akan menginstal paket nginx kustom yang mendukung algoritma kompresi brotli pada sistem Ubuntu. Dan kami akan menggunakan versi stabil terbaru dari paket nginx yang dapat diunduh dari repositori nginx resmi.

Tambahkan Repositori Nginx

Sebelum menambahkan repositori nginx, tambahkan tanda kunci nginx menggunakan perintah di bawah ini.

curl -L https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

Sekarang buat file repositori nginx baru 'nginx.list' pada direktori '/etc/apt/sources.list.d' menggunakan editor vim.

vim /etc/apt/sources.list.d/nginx.list

Tempelkan konfigurasi di bawah.

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx

Simpan dan keluar.

Sekarang perbarui repositori ubuntu.

sudo apt-get update

Repositori Nginx telah ditambahkan.

Unduh file sumber Nginx dan ngx_brotli

Sekarang kita akan mengunduh paket Nginx dari repositori nginx menggunakan perintah apt.

Buka direktori '/usr/local/src' dan unduh sumber Nginx menggunakan perintah apt di bawah ini.

cd /usr/local/src
sudo apt source nginx

Sekarang instal semua dependensi paket yang diperlukan untuk nginx.

sudo apt build-dep nginx -y

Dan setelah semua instalasi selesai, klon kode sumber 'ngx_brotli' dari GitHub.

git clone --recursive https://github.com/google/ngx_brotli.git

Nginx dan ngx_brotli telah diunduh.

Bangun Nginx dengan Dukungan ngx_brotli

Sekarang kita perlu mengedit aturan build Nginx default, kita perlu menambahkan ngx_brotli ke aturan build paket.

Buka direktori '/usr/local/src/nginx-*' dan edit konfigurasi 'rules' debian.

cd /usr/local/src/nginx-*/
vim debian/rules

Sekarang Anda akan mendapatkan dua lingkungan build untuk 'config.env.nginx ' dan 'config.env.nginx_debug '. Tambahkan opsi '--add-module=' untuk ngx_brotli ke kedua lingkungan bawaan.

--add-module=/usr/local/src/ngx_brotli

Simpan dan keluar.

Dan kami siap untuk mengompilasi dan membangun paket nginx dengan dukungan ngx_brotli.

Jalankan perintah dpkg di bawah ini.

sudo dpkg-buildpackage -b -uc -us

Catatan:

  • -b:Buat hanya biner, tanpa file sumber.
  • -uc :File .buildinfo dan .changes yang tidak ditandatangani.
  • -us:paket sumber yang tidak ditandatangani.

Ketika pembangunan selesai, Anda akan mendapatkan paket nginx-*.deb pada direktori '/usr/local/src' seperti yang ditunjukkan di bawah ini.

ls -lah

Instal Nginx dan Aktifkan Dukungan Brotli

Build nginx dengan ngx_brotli telah selesai, instal paket nginx-*.deb menggunakan perintah dpkg di bawah ini.

cd /usr/local/src/
sudo dpkg -i *.deb

Nginx dengan dukungan ngx_brotli telah diinstal.

Sekarang masuk ke direktori konfigurasi '/etc/nginx' dan edit file konfigurasi 'nginx.conf'.

cd /etc/nginx/
vim nginx.conf

Aktifkan ngx_brotli di nginx dengan menambahkan konfigurasi di bawah ini di dalam bagian 'http {...}'.

    brotli on;
    brotli_comp_level 6;
    brotli_static on;
    brotli_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/vnd.microsoft.icon image/bmp image/svg+xml;

Simpan dan keluar.

Uji konfigurasi nginx dan pastikan tidak ada kesalahan.

nginx -t

Dukungan kompresi brotli telah diaktifkan.

Langkah 3 - Konfigurasikan Nginx Virtual Host

Pada langkah ini, kita akan mencoba membuat virtual host baru untuk nama domain nginx.hakase-labs.io.

Catatan:

  • Kompresi Brotli hanya mendukung situs HTTPS, jadi pastikan Anda memiliki file sertifikat untuk nama domain Anda, atau Anda dapat membuat sertifikat SSL Letsencrypt gratis.

Buka direktori konfigurasi '/etc/nginx' dan buat konfigurasi virtual host baru 'brotli.conf'.

cd /etc/nginx/
vim conf.d/brotli.conf

Rekatkan konfigurasi host virtual nginx berikut di sana.

# Redirect HTTP to HTTPS Nginx
server { listen 80; server_name nginx.hakase-labs.io; return 301 https://$host$request_uri; } # SSL configuration server { listen 443 ssl http2; server_name nginx.hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/nginx.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nginx.hakase-labs.io/privkey.pem; # Improve HTTPS performance with session resumption ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; # Enable server-side protection against BEAST attacks ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; # Disable SSLv3 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# web root directory location / { root /usr/share/nginx/html; } }

Simpan dan keluar.

Catatan:

  • Ubah nama domain dengan domain Anda sendiri.
  • Ubah jalur sertifikat SSL.

Sekarang uji konfigurasi nginx dan pastikan tidak ada kesalahan, lalu restart layanan.

nginx -t
systemctl restart nginx

Host virtual nginx baru telah ditambahkan.

Langkah 4 - Pengujian

Buka browser web Anda dan ketik nama domain, milik saya adalah:

http://nginx.hakase-labs.io

Sekarang Anda akan diarahkan ke koneksi https. Klik kanan pada laman dan klik 'Periksa Elemen '. Klik 'Jaringan ' dan muat ulang halaman.

Klik pada detail permintaan dan Anda akan mendapatkan semua header permintaan dan respons dari server web seperti yang ditunjukkan di bawah ini.

Pada bagian 'Respons headers', Anda akan melihat 'content-encoding:br' untuk dukungan brotli.

Sekarang jika Anda ingin tes lain, Anda dapat menggunakan perintah curl seperti yang ditunjukkan di bawah ini.

curl -H 'Accept-Encoding: br' -I https://nginx.hakase-labs.io

Dan Anda akan melihat hasil 'content-encoding:br' untuk dukungan brotli.

Instalasi Nginx dengan Dukungan Kompresi Brotli di Ubuntu 18.04 telah berhasil diselesaikan.

Referensi

  • https://github.com/google/ngx_brotli
  • https://www.babak.io/blog/

Ubuntu
  1. Cara Menginstal Nextcloud dengan Nginx di Ubuntu 18.04 LTS

  2. Cara Menginstal Seafile dengan Nginx di Ubuntu 20.04 LTS

  3. Cara Menyebarkan Modsecurity dengan Nginx di Ubuntu 20.04 LTS

  1. Cara Menginstal MediaWiki dengan Nginx di Ubuntu 16.04

  2. Cara Memasang Varnish Reverse Proxy dengan Nginx di Ubuntu 16.04 LTS

  3. Cara Menginstal Seafile dengan Nginx di Ubuntu 18.04 LTS

  1. Cara Menginstal Magento dengan Nginx di Ubuntu 15.10

  2. Cara Menginstal Mailpile dengan Nginx di Ubuntu 15.10

  3. Cara Instal Redmine 3 dengan Nginx di Ubuntu 15.10