Sejak dimulainya World Wide Web (www ), HTTP protokol telah berkembang selama bertahun-tahun untuk memberikan konten digital yang aman dan cepat melalui internet.
Versi yang paling banyak digunakan adalah HTTP 1.1 dan meskipun dikemas dengan peningkatan fitur dan pengoptimalan kinerja untuk mengatasi kekurangan versi sebelumnya, ia tidak memiliki beberapa fitur penting lainnya yang telah ditangani oleh HTTP/2 .
Apa Batasan HTTP/1.1?
HTTP/1.1 protokol penuh dengan kekurangan berikut yang membuatnya kurang ideal terutama saat menjalankan server web dengan lalu lintas tinggi:
- Keterlambatan dalam memuat halaman web karena header HTTP yang panjang.
- HTTP/1.1 hanya dapat mengirim satu permintaan untuk setiap file per koneksi TCP.
- Mengingat bahwa HTTP/1.1 memproses satu permintaan untuk setiap koneksi TCP, browser terpaksa mengirim banjir koneksi TCP paralel untuk memproses permintaan secara bersamaan. Hal ini menyebabkan kemacetan TCP dan akhirnya pemborosan bandwidth dan degradasi jaringan.
Masalah yang disebutkan di atas sering menyebabkan penurunan kinerja dan biaya overhead yang tinggi dalam penggunaan bandwidth. HTTP/2 muncul untuk mengatasi masalah ini dan sekarang menjadi masa depan untuk protokol HTTP.
Keuntungan Menggunakan HTTP/2
Ini menawarkan keuntungan sebagai berikut:
- Kompresi header yang meminimalkan permintaan klien dan dengan demikian menurunkan konsumsi bandwidth. Efek yang dihasilkan adalah kecepatan memuat halaman yang cepat.
- Melipatgandakan beberapa permintaan melalui satu koneksi TCP. Baik server maupun klien dapat memecah permintaan HTTP menjadi beberapa bingkai dan mengelompokkannya kembali di ujung yang lain.
- Kinerja web yang lebih cepat sehingga menghasilkan peringkat SEO yang lebih baik.
- Keamanan yang ditingkatkan karena sebagian besar browser utama memuat HTTP/2 melalui HTTPS.
- HTTP/2 dianggap lebih mobile-friendly berkat fitur kompresi header.
Karena itu, kami akan mengaktifkan HTTP/2 di Apache di Ubuntu 20,04 LTS dan Ubuntu 18.04 LTS .
Prasyarat:
Sebelum memulai, pastikan Anda mengaktifkan HTTPS di server web Apache sebelum mengaktifkan HTTP/2 . Ini karena semua browser web utama mendukung HTTP/2 melalui HTTPS . Saya memiliki nama domain yang menunjuk ke sebuah instance di Ubuntu 20.04 yang menjalankan server Apache diamankan menggunakan sertifikat Let's Encrypt.
Selain itu, sebaiknya Anda memiliki Apache 2.4.26 dan versi yang lebih baru untuk server produksi yang ingin beralih ke HTTP/2 .
Untuk memeriksa versi Apache Anda sedang menjalankan, jalankan perintah:
$ apache2 -v
Periksa Versi Apache di Ubuntu
Dari output tersebut, Anda dapat melihat bahwa kami menggunakan versi terbaru, yaitu Apache 2.4.41 pada saat menulis artikel ini.
Aktifkan HTTP/2 di Apache Virtual Host
Untuk memulai, konfirmasikan terlebih dahulu bahwa server web menjalankan HTTP/1.1 . Anda dapat melakukannya di browser dengan membuka bagian alat pengembang di Google chrome menggunakan Ctrl +SHIFT + I
kombinasi. Klik pada ‘Jaringan ' dan cari 'Protokol ' kolom.
Konfirmasi Versi Protokol HTTP
Selanjutnya, aktifkan HTTP/2 modul di Ubuntu dengan menjalankan perintah berikut.
$ sudo a2enmod http2
Aktifkan HTTP/2 di Ubuntu
Selanjutnya, cari dan edit SSL . Anda file host virtual, jika Anda telah mengaktifkan HTTPS menggunakan Let's Encrypt , file baru dibuat dengan le-ssl.conf akhiran.
$ sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf
Masukkan direktif di bawah ini setelah <VirtualHost *:443>
tag.
Protocols h2 http/1.1
Aktifkan HTTP/2 di Apache
Untuk menyimpan perubahan, mulai ulang server web Apache.
$ sudo systemctl restart apache2
Untuk memeriksa apakah HTTP/2 diaktifkan, ambil header HTTP menggunakan perintah curl berikut seperti yang ditunjukkan.
$ curl -I --http2 -s https://domain.com/ | grep HTTP
Periksa Dukungan HTTP/2 di Apache
Anda akan mendapatkan output yang ditampilkan.
HTTP/2 200
Di browser, muat ulang situs Anda. Kemudian kembali ke alat pengembang dan konfirmasikan HTTP/2 yang dilambangkan dengan h2
label pada ‘Protokol ' kolom.
Konfirmasi Versi Protokol HTTP/2
Saat Menggunakan Modul mod_php dengan Apache
Jika Anda menjalankan Apache di samping mod_php modul, Anda harus beralih ke PHP-FPM . Ini karena mod_php modul menggunakan prefork MPM modul yang tidak didukung oleh HTTP/2 . Anda perlu mencopot pemasangan MPM pre prefork dan beralih ke mpm_event modul yang akan didukung oleh HTTP/2 .
Jika Anda menggunakan PHP 7.4 mod_php modul, misalnya, nonaktifkan seperti yang ditunjukkan:
$ sudo a2dismod php7.4
Nonaktifkan Modul mod_php
Setelah itu, nonaktifkan prefork MPM modul.
$ sudo a2dismod mpm_prefork
Nonaktifkan Prefork MPM di Apache
Setelah menonaktifkan modul, selanjutnya aktifkan Event MPM , Fast_CGI , dan setenvif modul seperti yang ditunjukkan.
$ sudo a2enmod mpm_event proxy_fcgi setenvif
Aktifkan MPM Acara di Apache
Instal PHP-FPM di Ubuntu
Selanjutnya, instal dan mulai PHP-FPM seperti yang ditunjukkan.
$ sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm
Kemudian aktifkan PHP-FPM untuk memulai saat boot.
$ sudo systemctl enable php7.4-fpm
Selanjutnya, aktifkan PHP-FPM sebagai penangan PHP Apache dan mulai ulang server web Apache agar perubahan dapat diterapkan.
$ sudo a2enconf php7.4-fpm
Aktifkan Dukungan HTTP/2 di Apache Ubuntu
Kemudian aktifkan modul HTTP/2 seperti sebelumnya.
$ sudo a2enmod http2
Mulai ulang Apache untuk menyinkronkan semua perubahan.
$ sudo systemctl restart apache2
Terakhir, Anda dapat menguji apakah server Anda menggunakan HTTP/2 protokol menggunakan perintah curl seperti yang ditunjukkan.
$ curl -I --http2 -s https://domain.com/ | grep HTTP
Periksa Protokol HTTP/2 di Apache
Anda juga dapat memilih untuk menggunakan alat pengembang di Google Chrome browser untuk memverifikasi seperti yang didokumentasikan sebelumnya. Kami harus mengakhiri panduan ini, Kami harap Anda menemukan informasi yang berharga dan Anda dapat dengan nyaman mengaktifkan HTTP/2 di Apache dengan mudah.
Berbagi itu Peduli…Berbagi di FacebookBerbagi di TwitterBerbagi di LinkedinBerbagi di Reddit