Cara Mengaktifkan HTTP/2.0 di Nginx


HTTP/2 adalah standar terbaru untuk protokol HTTP, yang merupakan penerus HTTP/1.1. Ini menjadi semakin populer karena manfaatnya bagi pengembang web dan pengguna secara umum. Ini menyediakan transportasi yang dioptimalkan untuk semantik HTTP dengan mendukung semua fitur inti HTTP/1.1 tetapi bertujuan untuk menjadi lebih efisien dalam berbagai cara.

Ada banyak fitur selain HTTP/2 yang memberi Anda lebih banyak kemungkinan untuk mengoptimalkan situs web/aplikasi. Ia menawarkan multiplexing dan konkurensi yang sebenarnya, kompresi header yang lebih baik (pengkodean biner), prioritas yang lebih baik, mekanisme kontrol aliran yang lebih baik, dan mode interaksi baru yang disebut “server push” yang memungkinkan server untuk mengirimkan respons ke klien . Selain itu, HTTP/2 didasarkan pada protokol SPDY eksperimental Google.

Oleh karena itu, fokus utama HTTP/2 adalah mengurangi waktu pemuatan halaman web secara keseluruhan, sehingga meningkatkan kinerja. Hal ini juga berfokus pada penggunaan sumber daya jaringan dan server serta keamanan karena, dengan HTTP/2, enkripsi SSL/TLS bersifat wajib.

Dalam artikel ini, Anda akan mempelajari cara mengaktifkan Nginx dengan dukungan HTTP/2 di server Linux.

Prasyarat:

  • Instalasi NGINX versi 1.9.5 atau lebih tinggi yang berfungsi, dibuat dengan modul ngx_http_v2_module.
  • Pastikan situs Anda menggunakan sertifikat SSL/TLS, jika Anda tidak memilikinya, Anda dapat memperolehnya dari Let's Encrypt atau menggunakan sertifikat yang ditandatangani sendiri.

Anda dapat menginstal NGINX atau menerapkannya dengan tumpukan LEMP seperti yang dijelaskan dalam panduan berikut:

  • Cara Install Nginx di CentOS 8
  • Cara Install LEMP Server di CentOS 8
  • Cara Install NGINX, MySQL/MariaDB dan PHP di RHEL 8
  • Cara Menginstal LEMP Stack dengan PhpMyAdmin di Ubuntu 20.04
  • Instal Nginx dengan Blok Server (Virtual Host) di Debian 10
  • Cara Menggunakan Nginx sebagai HTTP Load Balancer di Linux

Cara Mengaktifkan HTTP/2.0 di NGINX

Jika Anda telah menginstal NGINX, verifikasi bahwa NGINX dibuat dengan modul ngx_http_v2_module dengan menjalankan perintah berikut.

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

Setelah Anda memiliki situs web/aplikasi yang dilayani oleh NGINX dengan HTTPS yang dikonfigurasi, buka file blok server virtual (atau host virtual) situs web Anda untuk pengeditan.

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

Anda dapat mengaktifkan dukungan HTTP/2 hanya dengan menambahkan parameter http2 ke semua arahan listen seperti yang ditunjukkan pada tangkapan layar berikut.

listen 443 ssl http2;

Contoh konfigurasi blok server terlihat seperti di bawah ini.


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    
}

Simpan perubahan pada file dan tutup.

Kemudian periksa sintaks konfigurasi NGINX, jika sudah OK, restart layanan Nginx.

nginx -t
systemctl restart nginx

Selanjutnya, buka browser web untuk memverifikasi apakah situs web Anda disajikan melalui HTTP/2.

http://www.example.com

Untuk mengakses header HTTP, klik kanan pada halaman web yang ditampilkan, pilih Periksa dari daftar opsi untuk membuka alat pengembang, lalu klik tab Jaringan, dan muat ulang halaman.

Periksa di bawah Protokol untuk melihat protokol yang digunakan situs Anda (jika Anda tidak melihat header Protokol, klik kanan salah satu header, misalnya Nama, lalu centang Protokol dari daftar untuk menampilkannya sebagai header).

Jika situs Anda berjalan di HTTP/1.1, di bawah Protokol, Anda akan melihat http/1.1 seperti yang ditunjukkan pada tangkapan layar berikut.

Jika dijalankan di HTTP/2, di bawah Protokol, Anda akan melihat h2 seperti yang ditunjukkan pada tangkapan layar berikut. Anda mungkin ingin menonaktifkan cache browser untuk melihat konten terbaru yang disajikan langsung dari server web.

Itu saja! Untuk informasi lebih lanjut, lihat dokumentasi modul ngx_http_v2_module. Jangan ragu untuk mengajukan pertanyaan melalui formulir umpan balik di bawah ini.