Πώς να ενεργοποιήσετε το HTTP/2.0 στο Nginx


Το HTTP/2 είναι το πιο πρόσφατο πρότυπο για το πρωτόκολλο HTTP, είναι ο διάδοχος του HTTP/1.1. Γίνεται ολοένα και πιο δημοφιλές λόγω των πλεονεκτημάτων που προσφέρει στους προγραμματιστές ιστού και στους χρήστες γενικότερα. Παρέχει μια βελτιστοποιημένη μεταφορά για τη σημασιολογία HTTP υποστηρίζοντας όλες τις βασικές δυνατότητες του HTTP/1.1, αλλά στοχεύει να είναι πιο αποτελεσματική με πολλούς τρόπους.

Υπάρχουν πολλές δυνατότητες πέρα από το HTTP/2 που σας δίνουν περισσότερες δυνατότητες βελτιστοποίησης ενός ιστότοπου/εφαρμογής. Προσφέρει αληθινή πολυπλεξία και συγχρονισμό, καλύτερη συμπίεση κεφαλίδας (δυαδική κωδικοποίηση), καλύτερη ιεράρχηση προτεραιοτήτων, καλύτερους μηχανισμούς ελέγχου ροής και μια νέα λειτουργία αλληλεπίδρασης που ονομάζεται \ώθηση διακομιστή που επιτρέπει σε έναν διακομιστή να ωθήσει απαντήσεις σε πελάτη. Για να μην αναφέρουμε, το HTTP/2 βασίζεται στο πειραματικό πρωτόκολλο SPDY της Google.

Επομένως, ο πρωταρχικός στόχος του HTTP/2 είναι η μείωση του συνολικού χρόνου φόρτωσης ιστοσελίδων, βελτιώνοντας έτσι την απόδοση. Εστιάζει επίσης στη χρήση πόρων δικτύου και διακομιστή καθώς και στην ασφάλεια, επειδή, με το HTTP/2, η κρυπτογράφηση SSL/TLS είναι υποχρεωτική.

Σε αυτό το άρθρο, θα μάθετε πώς να ενεργοποιείτε το Nginx με υποστήριξη HTTP/2 σε διακομιστές Linux.

Προαπαιτούμενα:

  • Μια λειτουργική εγκατάσταση NGINX έκδοσης 1.9.5 ή νεότερης, κατασκευασμένη με τη λειτουργική μονάδα ngx_http_v2_module.
  • Βεβαιωθείτε ότι ο ιστότοπός σας χρησιμοποιεί πιστοποιητικό SSL/TLS, αν δεν έχετε, μπορείτε να το αποκτήσετε από αυτο-υπογεγραμμένο πιστοποιητικό.

Μπορείτε να εγκαταστήσετε το NGINX ή να το αναπτύξετε με μια στοίβα LEMP όπως περιγράφεται στους ακόλουθους οδηγούς:

  • Πώς να εγκαταστήσετε το Nginx στο CentOS 8
  • Τρόπος εγκατάστασης διακομιστή LEMP στο CentOS 8
  • Τρόπος εγκατάστασης NGINX, MySQL/MariaDB και PHP στο RHEL 8
  • Πώς να εγκαταστήσετε το LEMP Stack με το PhpMyAdmin στο Ubuntu 20.04
  • Εγκαταστήστε το Nginx με μπλοκ διακομιστή (εικονικούς κεντρικούς υπολογιστές) στο Debian 10
  • Πώς να χρησιμοποιήσετε το Nginx ως εξισορρόπηση φορτίου HTTP στο Linux

Πώς να ενεργοποιήσετε το HTTP/2.0 στο NGINX

Εάν έχετε εγκαταστήσει το NGINX, βεβαιωθείτε ότι δημιουργήθηκε με τη λειτουργική μονάδα ngx_http_v2_module εκτελώντας την ακόλουθη εντολή.

# strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

Αφού έχετε έναν ιστότοπο/εφαρμογή που εξυπηρετείται από το NGINX με διαμορφωμένο HTTPS, ανοίξτε το αρχείο μπλοκ εικονικού διακομιστή (ή εικονικού κεντρικού υπολογιστή) του ιστότοπού σας για μοντάζ.

# vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
$ sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

Μπορείτε να ενεργοποιήσετε την υποστήριξη HTTP/2 προσθέτοντας απλώς την παράμετρο http2 σε όλες τις οδηγίες listen όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

listen 443 ssl http2;

Το δείγμα διαμόρφωσης μπλοκ διακομιστή φαίνεται όπως παρακάτω.

server {
        server_name example.com www.example.com;
        access_log  /var/log/nginx/example.com_access.log;
        error_log  /var/log/nginx/example.com_error.log;

        listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
        listen 443 ssl http2; # managed by Certbot

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot    
}

Αποθηκεύστε τις αλλαγές στο αρχείο και κλείστε το.

Στη συνέχεια, ελέγξτε τη σύνταξη διαμόρφωσης του NGINX, εάν είναι εντάξει, επανεκκινήστε την υπηρεσία Nginx.

# nginx -t
# systemctl restart nginx

Στη συνέχεια, ανοίξτε ένα πρόγραμμα περιήγησης ιστού για να επαληθεύσετε εάν ο ιστότοπός σας εξυπηρετείται μέσω HTTP/2.

http://www.example.com

Για πρόσβαση στις κεφαλίδες HTTP, κάντε δεξί κλικ στην εμφανιζόμενη ιστοσελίδα, επιλέξτε Επιθεώρηση από τη λίστα επιλογών για να ανοίξετε τα εργαλεία προγραμματιστή και, στη συνέχεια, κάντε κλικ στην καρτέλα Δίκτυο και φορτώστε ξανά η σελίδα.

Κάντε κλικ στο Πρωτόκολλα για να δείτε αυτό που χρησιμοποιεί ο ιστότοπός σας (εάν δεν βλέπετε την κεφαλίδα Πρωτόκολλα, κάντε δεξί κλικ σε οποιαδήποτε από τις κεφαλίδες, π.χ. Όνομα και, στη συνέχεια, επιλέξτε Πρωτόκολλο από τη λίστα για να το εμφανίσετε ως κεφαλίδα).

Εάν ο ιστότοπός σας εκτελείται σε HTTP/1.1, στο Πρωτόκολλο, θα δείτε το http/1.1 όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Εάν εκτελείται σε HTTP/2, στο Πρωτόκολλο, θα δείτε το h2 όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Μπορεί να θέλετε να απενεργοποιήσετε την προσωρινή μνήμη του προγράμματος περιήγησης για να δείτε το πιο πρόσφατο περιεχόμενο που προβάλλεται απευθείας από τον διακομιστή ιστού.

Αυτό είναι όλο! Για περισσότερες πληροφορίες, ανατρέξτε στην τεκμηρίωση της ενότητας ngx_http_v2_module. Μη διστάσετε να κάνετε ερωτήσεις μέσω της παρακάτω φόρμας σχολίων.