Giunsa Pag-enable ang HTTP/2.0 sa Nginx


Ang HTTP/2 mao ang pinakabag-o nga sumbanan sa HTTP protocol, kini ang manununod sa HTTP/1.1. Kini nahimong mas popular tungod sa mga benepisyo nga gidala niini sa mga web developer ug tiggamit sa kinatibuk-an. Naghatag kini og usa ka optimized nga transportasyon alang sa HTTP semantics pinaagi sa pagsuporta sa tanan nga mga kinauyokan nga bahin sa HTTP/1.1 apan nagtumong nga mahimong mas episyente sa daghang mga paagi.

Adunay daghang mga bahin sa ibabaw sa HTTP/2 nga naghatag kanimo daghang mga posibilidad nga ma-optimize ang usa ka web site/aplikasyon. Nagtanyag kini og tinuod nga multiplexing ug concurrency, mas maayo nga header compression (binary encoding), mas maayo nga prioritization, mas maayo nga flow control mechanism, ug bag-ong interaction mode nga gitawag og \server push nga makapahimo sa usa ka server sa pagduso sa mga tubag ngadto sa usa ka kliyente. Wala pay labot, HTTP /2 gibase sa eksperimento SPDY protocol sa Google.

Busa, ang panguna nga pokus sa HTTP/2 mao ang pagpakunhod sa kinatibuk-ang oras sa pagkarga sa panid sa web, sa ingon nagpauswag sa pasundayag. Nagtutok usab kini sa paggamit sa kahinguhaan sa network ug server ingon man sa seguridad tungod kay, uban sa HTTP/2, ang SSL/TLS encryption kay mandatory.

Niini nga artikulo, mahibal-an nimo kung giunsa ang pag-enable sa Nginx nga adunay suporta sa HTTP/2 sa mga server sa Linux.

  • Usa ka nagtrabaho nga instalasyon sa NGINX nga bersyon 1.9.5 o mas taas pa, nga gihimo gamit ang ngx_http_v2_module module.
  • Siguruha nga ang imong site naggamit sa SSL/TLS nga sertipiko, kung wala kay usa, mahimo nimo makuha gikan sa kaugalingon nga gipirmahan nga sertipiko.

Mahimo nimong i-install ang NGINX o i-deploy kini gamit ang LEMP stack sama sa gihulagway sa mosunod nga mga giya:

  • Unsaon Pag-instalar sa Nginx sa CentOS 8
  • Unsaon Pag-instalar sa LEMP Server sa CentOS 8
  • Unsaon Pag-instalar sa NGINX, MySQL/MariaDB ug PHP sa RHEL 8
  • Unsaon Pag-instalar sa LEMP Stack sa PhpMyAdmin sa Ubuntu 20.04
  • I-install ang Nginx gamit ang Server Blocks (Virtual Hosts) sa Debian 10
  • Unsaon Paggamit ang Nginx isip HTTP Load Balancer sa Linux

Giunsa Pag-enable ang HTTP/2.0 sa NGINX

Kung na-install nimo ang NGINX, pamatud-i nga kini gitukod gamit ang ngx_http_v2_module module pinaagi sa pagpadagan sa mosunod nga mando.

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

Sa higayon nga ikaw adunay usa ka web site/aplikasyon nga giserbisyuhan sa NGINX uban sa HTTPS configured, ablihi ang imong mga website virtual server block (o virtual host) file alang sa pag-edit.

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

Mahimo nimong palihokon ang suporta sa HTTP/2 pinaagi lamang sa pagdugang sa parameter nga http2 sa tanang mga direktiba sa paminaw sama sa gipakita sa mosunod nga screenshot.

listen 443 ssl http2;

Ang sampol nga server block configuration morag sa ubos.

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    
}

I-save ang mga pagbag-o sa file ug isira kini.

Dayon susiha ang configuration syntax sa NGINX, kung OK ra, i-restart ang serbisyo sa Nginx.

# nginx -t
# systemctl restart nginx

Sunod, ablihi ang usa ka web browser aron masusi kung ang imong website gisilbi sa HTTP/2.

http://www.example.com

Aron ma-access ang mga header sa HTTP, pag-klik sa tuo sa gipakita nga panid sa web, pilia Inspeksyon gikan sa lista sa mga kapilian aron maablihan ang mga himan sa developer, dayon i-klik ang tab sa Network, ug i-reload ang panid.

Susiha ubos sa Protocols aron makita ang usa nga gigamit sa imong site (kung dili nimo makita ang Protocols header, i-right-click ang bisan unsa sa mga header e.g. Ngalan, unya susiha ang Protocol gikan sa listahan aron ipakita kini isip header).

Kung ang imong site nagdagan sa HTTP/1.1, ubos sa Protocol, imong makita ang http/1.1 sama sa gipakita sa mosunod nga screenshot.

Kung kini nagdagan sa HTTP/2, ubos sa Protocol, imong makita ang h2 sama sa gipakita sa mosunod nga screenshot. Mahimo nimong i-disable ang cache sa browser aron makita ang pinakabag-o nga sulud nga giserbisyuhan direkta gikan sa webserver.

Kana lang! Para sa dugang nga impormasyon, tan-awa ang ngx_http_v2_module module documentation. Ayaw pagpanuko sa pagpangutana pinaagi sa feedback form sa ubos.