Protokol Transfer Hiperteks Versi 2 (HTTP/2 ) adalah versi terbaru dari protokol HTTP, diterbitkan sebagai standar IETF di RFC 7540 pada tahun 2015. Fokus protokol adalah pada kinerja; khususnya, latensi yang dirasakan pengguna akhir, jaringan, dan penggunaan sumber daya server. Salah satu tujuan utama adalah untuk memungkinkan penggunaan koneksi tunggal dari browser ke situs Web. Protokol ini kompatibel ke belakang, sehingga metode HTTP, kode status, dan semantik sama dengan versi protokol sebelumnya. Apache memiliki dukungan HTTP/2 sejak versi 2.4.17. Dalam tutorial ini, saya akan berasumsi bahwa Anda sudah memiliki konfigurasi TLS yang berfungsi, dan Anda telah menginstal versi Apache yang diperlukan pada distribusi Linux pilihan Anda, dan bahwa Anda tahu cara menggunakan Let's Encrypt, atau Anda tahu caranya menerbitkan sertifikat yang ditandatangani sendiri.
Tutorial ini telah diuji pada Debian 10 , Debian 9, Ubuntu 20.04 LTS, dan Ubuntu 18.04 LTS.
Prasyarat
Untuk mengaktifkan HTTP/2 di Apache, Anda harus memenuhi persyaratan berikut:
- Pertama, Anda harus mengaktifkan HTTPS di server Anda. Semua browser utama mengizinkan penggunaan HTTP/2 hanya melalui HTTPS. Juga, TLS versi protokol>=1.2 dengan cipher suite modern diperlukan.
- Selanjutnya, pastikan Anda menjalankan Apache 2.4.17 atau lebih tinggi karena HTTP/2 didukung dari versi ini ke atas.
- Selain itu, pastikan klien/browser Anda benar-benar mendukung HTTP/2.
Nonaktifkan modul mod_php
Sebelum kita dapat mengalihkan modul Apache MPM pada langkah berikutnya ke mpm_event, kita harus menonaktifkan mode mod_php lama dan menggantinya dengan mode PHP-FPM yang lebih modern. Perintah berbeda untuk setiap versi sistem Operasi, silakan gunakan yang cocok dengan sistem yang Anda instal.
Ubuntu 20,04 LTS
sudo apt-get install php7.4-fpm
sudo a2dismod php7.4
sudo a2enconf php7.4-fpm
sudo a2enmod proxy_fcgi
Debian 10
sudo apt-get install php7.3-fpm
sudo a2dismod php7.3
sudo a2enconf php7.3-fpm
sudo a2enmod proxy_fcgi
Ubuntu 18.04 LTS
sudo apt-get install php7.2-fpm
sudo a2dismod php7.2
sudo a2enconf php7.2-fpm
sudo a2enmod proxy_fcgi
Debian 9
sudo apt-get install php7.0-fpm
sudo a2dismod php7.0
sudo a2enconf php7.0-fpm
sudo a2enmod proxy_fcgi
Aktifkan Apache MPM yang kompatibel dengan HTTP/2
Secara default, Apache akan menggunakan MPM prefork. MPM ini tidak kompatibel dengan HTTP/2, jadi kami harus menggantinya dengan modul mpm_event yang lebih modern.
Pertama, kami menonaktifkan modul mpm_prefork:
sudo a2dismod mpm_prefork
Kemudian kita aktifkan modul mpm_event:
sudo a2enmod mpm_event
Aktifkan dukungan HTTP/2 di Apache
Agar HTTP/2 berfungsi di Apache, Anda perlu mengaktifkan dan memuat modul SSL dan HTTP/2. Untuk melakukannya, Anda dapat menjalankan perintah berikut di terminal Anda:
sudo a2enmod ssl
lalu
sudo a2enmod http2
Untuk mengaktifkan modul baru ini, Anda perlu menjalankan:
sudo systemctl restart apache2
Setelah mengaktifkan dan memuat modul Apache yang diperlukan, navigasikan ke direktori konfigurasi Apache Anda dan edit konfigurasi Apache.
Untuk mengaktifkan HTTP/2 di server web Apache Anda, tambahkan salah satu dari berikut ini ke konfigurasi Apache global Anda atau di dalam host virtual tertentu.
Protocols h2 http/1.1
Berikut adalah konfigurasi server virtual minimal yang dapat digunakan untuk mengaktifkan HTTP/2 di beberapa virtual host:
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/public_html/example.com
SSLEngine on
SSLCertificateKeyFile /path/to/private.pem
SSLCertificateFile /path/to/cert.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Protocols h2 http/1.1
</VirtualHost>
Untuk memeriksa apakah server Anda mendukung HTTP/2, Anda dapat menggunakan alat pengembang browser. Di bawah ini adalah tangkapan layar dari browser Google Chrome dan Apple Safari yang menunjukkan HTTP/2 berlaku di https://example.com domain.
Chrome
Safari
Tautan
- RFC 7540
- HTTP/2