Ubuntu 18.04te Nginxe Brotli desteği ekleme

Brotli (br) , Google tarafından Gzip, Zopfli ve Deflate'e alternatif olarak geliştirilen yeni bir açık kaynak sıkıştırma algoritmasıdır. İnternet Mühendisliği Görev Gücü'nde (IETF) resmen RFC 7932 olarak tanımlanmıştır . Google'ın Brotli ile ilgili vaka çalışması, daha az CPU kullanımı ile mevcut yöntemlerden% 26'ya kadar daha küçük sıkıştırma oranları gösterdi.

Nginx'in resmi desteği yok ancak Google tarafından geliştirilen ve Nginx'e destek eklemek için kullanabileceğimiz ngx_brotli adlı bir üçüncü taraf modülü var .

Bu kılavuz, yeni bir Ubuntu 18.04 LTS Vultr örneğinde Nginx'e nasıl Brotli desteği ekleyeceğinizi gösterecektir.

NOT: Bu kılavuz, johndoeörnek kullanıcı ve example.comörnek etki alanı olarak kullanılacaktır. Bunları adlarınıza göre değiştirin.

Gereksinimler

  • Ubuntu 18.04 LTS sunucusu
  • Nginx sürüm 1.11.5 veya daha üstü
  • A/ AAAAKayıtlar ayarlanmış alan adı
  • TLS sertifikası

Sen başlamadan önce

Ubuntu sürümünü kontrol edin.

lsb_release -ds
# Ubuntu 18.04 LTS

Erişimi olan yeni bir non-rootkullanıcı hesabı oluşturun sudove bu hesaba geçin.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

NOT : Kullanıcı adınızla değiştirinjohndoe .

İşletim sisteminizin yazılımını güncelleyin.

sudo apt update && sudo apt upgrade -y

Saat dilimini ayarlayın.

sudo dpkg-reconfigure tzdata

Gerekli oluşturma araçlarını ve paketlerini yükleyin.

sudo apt install -y build-essential git apt-transport-https socat

Adım 1 - Acme.sh dosyasını yükleyin ve Let's Encrypt'ten bir TLS sertifikası alın

Brotli, HTTPS kurmanızı ve kullanmanızı gerektirir. Bu bölümde Let's Encrypt'den güvenilir bir sertifika alacağız.

Acme.sh dosyasını indirin ve yükleyin.

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
source ~/.bashrc

Versiyonu kontrol et.

acme.sh --version
# v2.8.0

İçin RSA ve ECDSA sertifikaları alın example.com.

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --accountemail [email protected] --ocsp-must-staple --keylength 2048

# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --accountemail [email protected] --ocsp-must-staple --keylength ec-256

Yukarıdaki komutları çalıştırdıktan sonra, sertifikalarınız ve anahtarlarınız aşağıdaki konumlarda olacaktır:

  • RSA: /etc/letsencrypt/example.com
  • ECC / ECDSA: /etc/letsencrypt/example.com_ecc

Adım 2 - Nginx'i resmi Nginx deposundan yükleyin

Resmi Nginx deposundan en son Nginx ana hattını indirin ve yükleyin.

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt

Versiyonu kontrol et.

sudo nginx -v
# nginx version: nginx/1.15.2

Nginx'i etkinleştirin ve başlatın.

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

Adım 3 - Brotli kaynak kodunu indirin ve derleyin

Nginx'i kurduktan sonra, ngx_brotlidinamik bir Nginx modülü olarak Brotli modülünü ( ) oluşturmamız gerekiyor . Nginx sürüm 1.11.5'ten, eksiksiz Nginx yazılımını derlemeden tek tek dinamik modülleri derlemek mümkündür. Sonraki birkaç adımda, Brotli modülünü Nginx'in tamamını derlemeden dinamik olarak oluşturacağız.

Maingin Nginx kaynak kodunun en son sürümünü indirin ve çıkarın.

wget https://nginx.org/download/nginx-1.15.2.tar.gz && tar zxvf nginx-1.15.2.tar.gz

NOT : Nginx paketinin ve Nginx kaynak kodunun sürüm numaralarının eşleşmesi çok önemlidir. Nginx 1.15.2'yi resmi Nginx deposundan yüklediyseniz, bu durumda kaynak kodun aynı sürümünü ( 1.15.2) indirmeniz gerekir .

Kaldır nginx-1.15.2.tar.gz.

rm nginx-1.15.2.tar.gz

ngx_brotliGitHub'dan klonlayın .

git clone https://github.com/eustas/ngx_brotli.git
cd ngx_brotli && git submodule update --init && cd ~

Nginx kaynak kodu dizinine gidin.

cd ~/nginx-1.15.2

Gerekli kütüphaneleri indirin.

sudo apt install -y libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

ngx_brotliDinamik bir modül olarak derleyin ve Nginx modülleri için standart dizine kopyalayın /etc/nginx/modules.

./configure --with-compat --add-dynamic-module=../ngx_brotli
make modules
sudo cp objs/*.so /etc/nginx/modules

Liste içinde dosyaları /etc/nginx/modulesve göreceksiniz ngx_http_brotli_filter_module.sove ngx_http_brotli_static_module.so.

ls /etc/nginx/modules

644Tüm .sodosyalar için izinleri ayarlayın .

sudo chmod 644 /etc/nginx/modules/*.so

Adım 4 - Nginx'i Yapılandırma

Nginx'te Brotli desteğini yapılandırmaya hazırız.

sudo vim /etc/nginx/nginx.confYeni Brotli modüllerini yüklemek için aşağıdaki iki yönergeyi çalıştırın ve dosyanın üstüne ekleyin.

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

Yapılandırmayı test edin.

sudo nginx -t

İçin bir belge kök dizini oluşturun example.comve index.htmliçinde bazı içerikler oluşturun .

sudo mkdir -p /var/www/example.com
sudo -s
echo "Hello from example.com" >> /var/www/example.com/index.html
exit

İçin sanal bir ana bilgisayar oluşturun example.com.

sudo vim /etc/nginx/conf.d/example.com.conf

Aşağıdaki yapılandırmayla doldurun.

server {
  listen 80;
  server_name example.com; # Replace with your domain name
  return 301 https://$server_name$request_uri;
}

server {    
  listen 443 ssl http2;
  server_name example.com; # Replace with your domain name

  root /var/www/example.com; # Replace with your document root

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  brotli on;
  brotli_static on;
  brotli_types text/plain text/css text/javascript application/javascript text/xml application/xml image/svg+xml application/json;
}

Yapılandırmayı test edin.

sudo nginx -t

Nginx'i yeniden yükleyin.

sudo systemctl reload nginx.service

Web tarayıcınızda sitenizi ziyaret edin ve geliştirici araçlarının ağ sekmesini açın. Content-Encoding: brYanıt başlıklarında göreceksiniz . Bu, Brotli sıkıştırmasının çalışmakta olduğunun göstergesidir.

Ubuntu 18.04te Nginxe Brotli desteği ekleme

Ubuntu 18.04te Nginxe Brotli desteği ekleme

Web sunucunuzda Brotli sıkıştırmasını etkinleştirdiniz.



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun