How To - Enable HTTP/2 di Nginx Ubuntu



HTTP/2 itu merupakan evolusi dari HTTP/1.1. HTTP/2 ini yang membuat latency di browser berkurang dengan beberapa hal di bawah yang mempengaruhi seperti :

 

Binary Data

Dulu, HTTP/1.1 itu menggunakan textual data yang gak efficient banget buat jaringan (network). Dengan digantikannya menggunakan Binary Data, maka membuat transfer yang terjadi jauh lebih efisien.

 

Kompresi Header

Informasi yang dikirimkan dalam sebuah request berupa data, origin, tipe, length, cached time, semuanya dikompres sehingga jauh lebih kecil.

 

Pipelining

Di HTTP/1.1, server harus mengirimkan response bersamaan dengan request yang diterima. Sedangkan di HTTP/2, sistem berjalan dengan asynchronous. Sehingga tidak perlu lagi menunggu response yang satu kelar terlebih dahulu baru mengirimkan request selanjutnya.

 

Multipleks

Dengan menggunakan konsep multipleks maka request dan response yang banyak dapat dikirimkan dalam satu koneksi secara bersamaan.

 

Selebihnya bisa diliat kelebihannya HTTP/2 di https://http2.github.io

 

Oke, balik lagi kebahasan utama cara enable HTTP/2 di Nginx Ubuntu.

 

Prasyarat / Prerequisites

Ada beberapa hal yang harus terpenuhi sebelum HTTP/2 dapat dijalankan antara lainnya yaitu 

1. Sudah Terinstall Nginx dan tidak ada error dalam settingan

2. Sudah ada Domain dengan Sertifikat SSL yang valid

 

Enable HTTP/2 di Nginx Ubuntu

Untuk memungkinkan HTTP/2 di Nginx pada Ubuntu , kita harus mengedit Default Nginx Server Block

sudo nano /etc/nginx/sites-available/default

Tambahkan seperti berikut

server {  
        server_name domain.com www.domain.com;
        listen 443 ssl http2 default_server;
        root /var/www/html;
        index index.html;

        location / {
                try_files $uri $uri/ =404;
        }

        ssl_certificate /etc/nginx/ssl/domain.com.crt;
        ssl_certificate_key /etc/nginx/ssl/domain.com.key;
}

server {
       listen         80;
       server_name    domain.com www.domain.com;
       return         301 https://$server_name$request_uri;
}

Pastikan untuk mengubah domain.com dengan nama domain yang telah kamu miliki. Sebagai tambahan, Document Root dan path ke SSL dan Key-nya sudah diset secara benar. Setelah selesai maka save dan check settingan Nginx :

sudo nginx -t

 

Lalu restart Nginx supaya langkah di atas ngefek :

sudo systemctl restart nginx.service