Προσθέστε υποστήριξη Brotli στο Nginx στο Ubuntu 18.04

Ο Brotli (br) είναι ένας νέος αλγόριθμος συμπίεσης ανοιχτού κώδικα, που αναπτύχθηκε από την Google ως εναλλακτική λύση στα Gzip, Zopfli και Deflate. Ορίζεται επίσημα στο Internet Engineering Task Force (IETF) ως RFC 7932 . Η μελέτη περίπτωσης της Google για το Brotli έδειξε αναλογίες συμπίεσης έως και 26% μικρότερες από τις τρέχουσες μεθόδους, με λιγότερη χρήση CPU.

Το Nginx δεν έχει επίσημη υποστήριξη, αλλά υπάρχει μια ενότητα τρίτου κατασκευαστή που αναπτύχθηκε από την Google που ονομάζεται ngx_brotli και μπορούμε να χρησιμοποιήσουμε για να προσθέσουμε υποστήριξη στο Nginx.

Αυτός ο οδηγός θα σας δείξει πώς να προσθέσετε υποστήριξη Brotli στο Nginx σε μια νέα παρουσία του Ubuntu 18.04 LTS Vultr.

ΣΗΜΕΙΩΣΗ: Αυτός ο οδηγός θα χρησιμοποιηθεί johndoeως παράδειγμα χρήστη και example.comως παράδειγμα τομέα. Αντικαταστήστε τα σύμφωνα με τα ονόματά σας.

Απαιτήσεις

  • Διακομιστής Ubuntu 18.04 LTS
  • Έκδοση Nginx 1.11.5 ή νεότερη
  • Όνομα τομέα με ρύθμιση A/ AAAAεγγραφές
  • Πιστοποιητικό TLS

Πριν ξεκινήσεις

Ελέγξτε την έκδοση του Ubuntu.

lsb_release -ds
# Ubuntu 18.04 LTS

Δημιουργήστε έναν νέο non-rootλογαριασμό χρήστη με sudoπρόσβαση και μεταβείτε σε αυτόν.

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

ΣΗΜΕΙΩΣΗ : Αντικαταστήστε το johndoeμε το όνομα χρήστη σας .

Ενημερώστε το λογισμικό του λειτουργικού σας συστήματος.

sudo apt update && sudo apt upgrade -y

Ρυθμίστε τη ζώνη ώρας.

sudo dpkg-reconfigure tzdata

Εγκαταστήστε τα απαραίτητα εργαλεία κατασκευής και πακέτα.

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

Βήμα 1 - Εγκαταστήστε το Acme.sh και αποκτήστε ένα πιστοποιητικό TLS από το Let's Encrypt

Το Brotli απαιτεί από εσάς να ρυθμίσετε και να χρησιμοποιήσετε το HTTPS. Σε αυτό το μέρος θα λάβουμε ένα αξιόπιστο πιστοποιητικό από το Let's Encrypt.

Κατεβάστε και εγκαταστήστε το Acme.sh.

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~
source ~/.bashrc

Ελέγξτε την έκδοση.

acme.sh --version
# v2.8.0

Λάβετε πιστοποιητικά RSA και ECDSA για example.com.

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --accountemail your_email@example.com --ocsp-must-staple --keylength 2048

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

Αφού εκτελέσετε τις παραπάνω εντολές, τα πιστοποιητικά και τα κλειδιά σας θα βρίσκονται στις ακόλουθες θέσεις:

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

Βήμα 2 – Εγκαταστήστε το Nginx από το επίσημο αποθετήριο Nginx

Κατεβάστε και εγκαταστήστε το πιο πρόσφατο mainline Nginx από το επίσημο αποθετήριο Nginx.

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

Ελέγξτε την έκδοση.

sudo nginx -v
# nginx version: nginx/1.15.2

Ενεργοποιήστε και ξεκινήστε το Nginx.

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

Βήμα 3 – Κατεβάστε και μεταγλωττίστε τον πηγαίο κώδικα του Brotli

Μετά την εγκατάσταση του Nginx, πρέπει να δημιουργήσουμε τη λειτουργική μονάδα Brotli ( ngx_brotli) ως μια δυναμική λειτουργική μονάδα Nginx. Από την έκδοση 1.11.5 του Nginx είναι δυνατή η μεταγλώττιση μεμονωμένων δυναμικών μονάδων χωρίς τη μεταγλώττιση του πλήρους λογισμικού Nginx. Στα επόμενα βήματα, θα δημιουργήσουμε τη λειτουργική μονάδα Brotli ως δυναμική χωρίς να μεταγλωττίσουμε το πλήρες Nginx.

Κατεβάστε την πιο πρόσφατη έκδοση του κύριου πηγαίου κώδικα Nginx και εξαγάγετε τον.

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

ΣΗΜΕΙΩΣΗ : Είναι πολύ σημαντικό οι αριθμοί έκδοσης του πακέτου Nginx και ο πηγαίος κώδικας Nginx να ταιριάζουν. Εάν εγκαταστήσατε το Nginx 1.15.2 από το επίσημο αποθετήριο Nginx, τότε πρέπει να κάνετε λήψη της ίδιας έκδοσης του πηγαίου κώδικα , 1.15.2 σε αυτήν την περίπτωση.

Αφαιρέστε nginx-1.15.2.tar.gz.

rm nginx-1.15.2.tar.gz

Κλωνοποίηση ngx_brotliαπό το GitHub.

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

Πλοηγηθείτε στον κατάλογο πηγαίου κώδικα Nginx.

cd ~/nginx-1.15.2

Κατεβάστε τις απαιτούμενες βιβλιοθήκες.

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

Μεταγλωττίστε το ngx_brotliως δυναμική λειτουργική μονάδα και αντιγράψτε το στον τυπικό κατάλογο για μονάδες Nginx, /etc/nginx/modules.

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

Καταχωρίστε τα αρχεία /etc/nginx/modulesκαι θα δείτε ngx_http_brotli_filter_module.soκαι ngx_http_brotli_static_module.so.

ls /etc/nginx/modules

Ορίστε δικαιώματα 644για όλα τα .soαρχεία.

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

Βήμα 4 – Διαμόρφωση Nginx

Είμαστε έτοιμοι να διαμορφώσουμε την υποστήριξη Brotli στο Nginx.

Εκτελέστε sudo vim /etc/nginx/nginx.confκαι προσθέστε τις ακόλουθες δύο οδηγίες στο επάνω μέρος του αρχείου για να φορτώσετε νέες μονάδες Brotli.

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

Δοκιμάστε τη διαμόρφωση.

sudo nginx -t

Δημιουργήστε έναν ριζικό κατάλογο εγγράφων example.comκαι δημιουργήστε index.htmlμε κάποιο περιεχόμενο σε αυτόν.

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

Δημιουργήστε έναν εικονικό κεντρικό υπολογιστή για example.com.

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

Συμπληρώστε το με την ακόλουθη διαμόρφωση.

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;
}

Δοκιμάστε τη διαμόρφωση.

sudo nginx -t

Επαναφόρτωση Nginx.

sudo systemctl reload nginx.service

Επισκεφτείτε τον ιστότοπό σας στο πρόγραμμα περιήγησής σας και ανοίξτε την καρτέλα δικτύου των εργαλείων προγραμματιστή. Θα δείτε Content-Encoding: brστις κεφαλίδες των απαντήσεων. Αυτός είναι ο δείκτης ότι η συμπίεση Brotli λειτουργεί.

Προσθέστε υποστήριξη Brotli στο Nginx στο Ubuntu 18.04

Προσθέστε υποστήριξη Brotli στο Nginx στο Ubuntu 18.04

Έχετε ενεργοποιήσει τη συμπίεση Brotli στον διακομιστή ιστού σας.

Αφήστε ένα σχόλιο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα