Otu esi eme HTTP/2.0 na Nginx


HTTP/2 bụ ọkọlọtọ kachasị ọhụrụ maka protocol HTTP, ọ bụ onye nọchiri HTTP/1.1. Ọ na-aghọwanye ewu ewu n'ihi uru ọ na-ewetara ndị mmepe weebụ na ndị ọrụ n'ozuzu ya. Ọ na-enye njem kachasị mma maka semantics HTTP site n'ịkwado atụmatụ niile nke HTTP/1.1 mana ọ chọrọ ịdị na-arụ ọrụ nke ọma n'ọtụtụ ụzọ.

Enwere ọtụtụ atụmatụ n'elu HTTP/2 na-enye gị ohere karịa ịkwalite saịtị/ngwa weebụ. Ọ na-enye ezi multiplexing na concurrency, mma nkụnye eji isi mee (binary encoding), ka mma ụzọ, mma usoro njikwa ọsọ, na ọhụrụ mmekọrịta mode a na-akpọ \server push nke na-enyere sava aka ịkwanye nzaghachi na onye ahịa. /2 dabere na ụkpụrụ nnwale SPDY nke Google.

Ya mere, isi ihe HTTP/2 na-elekwasị anya bụ ibelata oge nbudata ibe weebụ, si otú a na-emeziwanye arụmọrụ. Ọ na-elekwasịkwa anya na ojiji netwọkụ na ihe nkesa yana nchekwa n'ihi na, na HTTP/2, SSL/TLS izo ya ezo bụ iwu.

N'isiokwu a, ị ga-amụta otu esi eme Nginx na nkwado HTTP/2 na sava Linux.

  • Nrụnye na-arụ ọrụ nke ụdị NGINX 1.9.5 ma ọ bụ karịa, ejiri modul ngx_http_v2_module wuo.
  • Jide n'aka na saịtị gị na-eji asambodo SSL/TLS, ọ bụrụ na ịnweghị otu, ị nwere ike nweta akwụkwọ ejiri aka ya bịa.

Ị nwere ike iwunye NGINX ma ọ bụ tinye ya na nchịkọta LEMP dịka akọwara na ntuziaka ndị a:

  • Otu esi etinye Nginx na CentOS 8
  • Otu esi etinye sava LEMP na CentOS 8
  • Otu esi etinye NGINX, MySQL/MariaDB na PHP na RHEL 8
  • Etu esi etinye LEMP Stack na PhpMyAdmin na Ubuntu 20.04
  • Wụnye Nginx na ihe mgbochi sava (Virtual Hosts) na Debian 10
  • Etu esi eji Nginx dị ka HTTP Load Balancer na Linux

Otu esi eme HTTP/2.0 na NGINX

Ọ bụrụ na etinyere NGINX, chọpụta na ejiri modul ngx_http_v2_module wuo ya site na iji iwu na-esonụ.

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

Ozugbo ị nwere ebe nrụọrụ weebụ/ngwa NGINX nwere ahaziri HTTPS, mepee faịlụ ebe nrụọrụ weebụ mebere ngọngọ (ma ọ bụ onye ọbịa mebere) maka idezi.

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

Ị nwere ike ime nkwado HTTP/2 site na ịgbakwụnye http2 paramita na ntụziaka ntị niile dị ka egosiri na nseta ihuenyo na-esonụ.

listen 443 ssl http2;

Nhazi ngọngọ ihe nkesa dị ka n'okpuru.

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    
}

Chekwaa mgbanwe na faịlụ ma mechie ya.

Wee lelee syntax nhazi NGINX, ọ bụrụ na ọ dị mma, malitegharịa ọrụ Nginx.

# nginx -t
# systemctl restart nginx

Na-esote, mepee ihe nchọgharị weebụ iji chọpụta ma ọ bụrụ na a na-eje ozi webụsaịtị gị karịa HTTP/2.

http://www.example.com

Iji nweta nkụnye eji isi mee HTTP, pịa aka nri na ibe weebụ egosiri, họrọ Nyochaa na listi nhọrọ iji mepee ngwa nrụpụta, wee pịa Network tab, ma bugharịa ibe ahụ.

Lelee n'okpuru Protocols ka ịhụ nke saịtị gị na-eji (ọ bụrụ na ịhụghị isi okwu Protocols, pịa aka nri na nkụnye eji isi mee nke ọ bụla dịka Aha, wee lelee Protocol site na listi iji gosipụta ya dị ka nkụnye eji isi mee).

Ọ bụrụ na saịtị gị na-agba ọsọ na HTTP/1.1, n'okpuru Protocol, ị ga-ahụ http/1.1 dị ka egosiri na nseta ihuenyo na-esonụ.

Ọ bụrụ na ọ na-agba na HTTP/2, n'okpuru Protocol, ị ga-ahụ h2 dị ka egosiri na nseta ihuenyo na-esonụ. Ị nwere ike gbanyụọ cache ihe nchọgharị iji lelee ọdịnaya kachasị ọhụrụ a na-enye ozugbo site na sava weebụ.

Ọ gwụla! Maka ozi ndị ọzọ, lee akwụkwọ modul ngx_http_v2_module. Egbula ịjụ ajụjụ site na mpempe nzaghachi n'okpuru.