Implementasi HTTP/2 pada server web adalah langkah krusial untuk mempercepat waktu muat situs melalui mekanisme multiplexing, kompresi header HPACK, dan enkripsi TLS wajib. Protokol ini menggantikan HTTP/1.1 dengan memungkinkan pengiriman banyak permintaan dan tanggapan secara simultan melalui satu koneksi TCP tunggal.
Untuk mengaktifkan HTTP/2, server web yang digunakan (seperti Nginx versi 1.9.5+, Apache 2.4.17+, atau LiteSpeed) harus sudah dikonfigurasi menggunakan sertifikat SSL/TLS yang valid, karena mayoritas peramban modern hanya mendukung HTTP/2 melalui koneksi HTTPS (ALPN).
Matriks Dukungan dan Konfigurasi Server Web
Tabel berikut merinci persyaratan minimum dan direktif konfigurasi utama untuk mengaktifkan HTTP/2 pada berbagai perangkat lunak server populer:
| Server Web | Versi Minimum | Direktif Konfigurasi Utama | Catatan Enkripsi |
|---|---|---|---|
| Nginx | 1.9.5+ | listen 443 ssl http2; |
Wajib SSL/TLS |
| Apache HTTPd | 2.4.17+ | Protocols h2 http/1.1 |
Membutuhkan mod_http2 |
| LiteSpeed | 5.0+ | Otomatis melalui panel admin | Aktif secara default pada HTTPS |
Langkah Teknis Implementasi pada Nginx
Nginx menyediakan cara paling mudah untuk mengaktifkan HTTP/2 melalui blok server konfigurasi SSL. Ikuti langkah-langkah di bawah ini:
- Pastikan versi Nginx telah diperbarui ke 1.9.5 atau yang lebih baru dengan menjalankan perintah
nginx -vdi terminal. - Buka berkas konfigurasi blok server Anda, biasanya terletak di
/etc/nginx/sites-available/namadomain.com. - Tambahkan parameter
http2pada baris direktiflistenport 443 seperti pada contoh sintaks di bawah.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name namadomain.com www.namadomain.com;
ssl_certificate /path/ke/sertifikat/fullchain.pem;
ssl_certificate_key /path/ke/kunci/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/html;
index index.html index.php;
}
Setelah berkas disimpan, lakukan pengujian sintaks konfigurasi untuk menghindari galat dengan perintah:
sudo nginx -t
Jika pengujian berhasil, muat ulang layanan Nginx untuk menerapkan perubahan:
sudo systemctl reload nginx
Langkah Teknis Implementasi pada Apache
Pada server Apache, modul HTTP/2 harus diaktifkan secara manual sebelum dapat digunakan pada virtual host.
- Aktifkan modul HTTP/2 dengan menjalankan perintah terminal:
sudo a2enmod http2. - Buka berkas konfigurasi virtual host situs Anda (misalnya
/etc/apache2/sites-available/namadomain.conf). - Tambahkan direktif protokol di dalam blok
<VirtualHost *:443>.
<VirtualHost *:443>
ServerName namadomain.com
ServerAlias www.namadomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /path/ke/cert.pem
SSLCertificateKeyFile /path/ke/privkey.pem
Protocols h2 http/1.1
<Directory /var/www/html>
AllowOverride All
</Directory>
</VirtualHost>
Simpan berkas, lalu aktifkan modul tambahan jika diperlukan dan mulai ulang layanan Apache:
sudo systemctl restart apache2
Verifikasi Keberhasilan Implementasi
Untuk memastikan bahwa server telah berjalan menggunakan protokol HTTP/2, gunakan alat pengujian berbasis baris perintah cURL dengan opsi deteksi protokol:
curl -I --http2 https://namadomain.com
Periksa keluaran pada baris pertama respons. Jika konfigurasi benar, respons akan menampilkan HTTP/2 200 alih-alih HTTP/1.1 200 OK. Alternatif lain, gunakan perangkat pemeriksa peramban (Developer Tools pada tab Network) atau layanan uji eksternal seperti KeyCDN HTTP/2 Test.
Troubleshooting Masalah Umum
Kendala yang sering terjadi saat migrasi ke HTTP/2 meliputi:
- Cipher Suite yang Tidak Kompatibel: Beberapa peramban menolak HTTP/2 jika server menggunakan cipher suite yang masuk dalam daftar hitam (blacklisted ciphers). Pastikan hanya menggunakan cipher TLS 1.2 dan TLSv1.3 yang aman.
- Modul Belog/Apache Belum Aktif: Pastikan modul
mod_routinesataumod_http2terpasang dengan benar pada distribusi Linux yang digunakan (Ubuntu, Debian, atau AlmaLinux). - Ketiadaan SSL: HTTP/2 secara ketat menuntut koneksi terenkripsi. Konfigurasi tanpa SSL akan memaksa server kembali ke fallback HTTP/1.1.