Kako omogočiti HTTP/2.0 v Nginxu


HTTP/2 je najnovejši standard za protokol HTTP in je naslednik HTTP/1.1. Zaradi koristi, ki jih prinaša spletnim razvijalcem in uporabnikom na splošno, postaja vse bolj priljubljen. Zagotavlja optimiziran transport za semantiko HTTP s podpiranjem vseh bistvenih značilnosti HTTP/1.1, vendar si prizadeva za večjo učinkovitost.

Na vrhu HTTP/2 je veliko funkcij, ki vam dajo več možnosti za optimizacijo spletnega mesta/aplikacije. Ponuja resnično multipleksiranje in sočasnost, boljše stiskanje glave (binarno kodiranje), boljšo prednostno razvrščanje, boljše mehanizme za nadzor pretoka in nov način interakcije, imenovan\"strežnik push", ki strežniku omogoča, da odzive posreduje stranki. Da ne omenjamo, HTTP/2 temelji na Googlovem eksperimentalnem protokolu SPDY.

Zato je glavni poudarek HTTP/2 zmanjšanje celotnega časa nalaganja spletnih strani in s tem izboljšanje učinkovitosti. Osredotoča se tudi na uporabo omrežnih in strežniških virov ter varnost, saj je s HTTP/2 šifriranje SSL/TLS obvezno.

V tem članku boste izvedeli, kako omogočiti Nginx s podporo HTTP/2 v strežnikih Linux.

  • Delovna namestitev NGINX različice 1.9.5 ali novejše, zgrajena z modulom ngx_http_v2_module.
  • Prepričajte se, da vaše spletno mesto uporablja potrdilo SSL/TLS, če ga nimate, ga lahko pridobite s samopodpisanim potrdilom.

NGINX lahko namestite ali uvedete s skladom LEMP, kot je opisano v naslednjih navodilih:

  • Kako namestiti Nginx na CentOS 8
  • Kako namestiti strežnik LEMP na CentOS 8
  • Kako namestiti NGINX, MySQL/MariaDB in PHP na RHEL 8
  • Kako namestiti LEMP Stack s PhpMyAdmin v Ubuntu 20.04
  • Namestite Nginx s strežniškimi bloki (navidezni gostitelji) v Debian 10
  • Kako uporabljati Nginx kot izravnalnik obremenitve HTTP v Linuxu

Kako omogočiti HTTP/2.0 v NGINX

Če imate nameščen NGINX, preverite, ali je bil zgrajen z modulom ngx_http_v2_module , tako da zaženete naslednji ukaz.

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

Ko imate spletno mesto/aplikacijo, ki jo NGINX streže s konfigurirano HTTPS, odprite datoteko bloka navideznega strežnika (ali navideznega gostitelja) za urejanje.

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

Podporo HTTP/2 lahko omogočite tako, da preprosto dodate parameter http2 vsem direktivam listen , kot je prikazano na naslednjem posnetku zaslona.

listen 443 ssl http2;

Vzorčna konfiguracija strežnika je videti spodaj.

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    
}

Spremembe shranite v datoteko in jo zaprite.

Nato preverite konfiguracijsko sintakso NGINX-a, če je v redu, znova zaženite storitev Nginx.

# nginx -t
# systemctl restart nginx

Nato odprite spletni brskalnik in preverite, ali vaše spletno mesto streže prek HTTP/2.

http://www.example.com

Če želite dostopati do naslovov HTTP, z desno miškino tipko kliknite prikazano spletno stran, na seznamu možnosti izberite Preveri, da odprete orodja za razvijalce, kliknite jeziček Omrežje in znova naložite stran.

V razdelku Protokoli preverite, katero uporablja vaše spletno mesto (če ne vidite glave protokolov, z desno miškino tipko kliknite katero koli glavo, npr. Ime, nato na seznamu preverite Protokol, da ga prikažete kot glavo).

Če se vaše spletno mesto izvaja na HTTP/1.1, boste v razdelku Protokol videli http/1.1, kot je prikazano na naslednjem posnetku zaslona.

Če se izvaja na HTTP/2, boste v razdelku Protokol videli h2 , kot je prikazano na naslednjem posnetku zaslona. Morda boste želeli onemogočiti predpomnilnik brskalnika, če si želite ogledati najnovejšo vsebino, ki je na voljo neposredno s spletnega strežnika.

To je vse! Za več informacij glejte dokumentacijo modula ngx_http_v2_module. Ne oklevajte in postavljajte vprašanja prek spodnjega obrazca za povratne informacije.