HTTP/2 Apache – Dalam tutorial ini, Anda akan belajar cara meningkatkan dan mengkonfigurasi  HTTP/2 apache di Ubuntu 16.04. Langkah-langkahnya tidak rumit, tetapi karena Anda akan memutakhirkan paket Apache utama, Anda harus membuat snapshot (atau cadangan lain) dari server Anda seandainya ada yang berbentuk seperti pir. Versi default Apache yang tersedia di Ubuntu 16.04 tidak dilengkapi dengan dukungan HTTP/2 Apache setidaknya, belum. Untungnya, untuk beralih dari HTTP / 1.1 ke HTTP/2, Anda dapat menggunakan rilis yang tidak didukung (oleh Ubuntu) tetapi stabil dari Apache untuk membuatnya berfungsi.

Kenapa HTTP/2? Sebagai protokol, HTTP/2 apache memiliki tujuan yang jelas dan sederhana: untuk menjadikan Internet lebih baik untuk semua orang. Ini dilakukan dengan meningkatkan kekurangan teknis HTTP/ 1.1, dan juga menambahkan fitur-fitur baru seperti aliran TCP multipleks dan Server Push. Jika Anda ingin tahu bagaimana tepatnya HTTP/2 membuat Internet lebih baik, maka baca “http2 menjelaskan”, makalah definitif yang ditulis oleh Daniel Steinberg dari Mozilla.

Persyaratan :

  1. VPS yang dikelola sendiri atau dedicated server dengan Ubuntu 16.04 menjalankan Apache 2.4.xx. (Petunjuk: Dapatkan kredit gratis $ 50 sekarang di DigitalOcean).     
  2. Nama domain terdaftar dengan HTTPS (TLS / SSL). HTTP / 2 hanya berfungsi bersama HTTPS karena sebagian besar browser, termasuk Firefox dan Chrome, tidak mendukung HTTP / 2 dalam mode cleartext (non-TLS).

Langkah 1: Tingkatkan Apache dari PPA

Mari kita asumsikan Anda menginstal Apache dari repositori Ubuntu standar stabil menggunakan apt. Saat Anda memeriksa versi apache2 Anda dengan mengetik:

apache2 -v

Anda akan melihat bahwa Apache 2.4.18 adalah versi default saat ini untuk Ubuntu 16.04. Namun, Anda memerlukan Apache 2.4.24 atau lebih baru untuk kompatibilitas dengan HTTP/2.

Untuk mendapatkan versi Apache yang lebih baru, Anda dapat menggunakan PPA dari Ondřej Surý yang mencakup rilis stabil terbaru (Apache 2.4.27 pada saat penulisan). Ondřej adalah pengembang PHP terkemuka di komunitas Debian, sehingga PPA ini dianggap aman.

Untuk menambahkan PPA, ketik:

sudo add-apt-repository ppa:ondrej/apache2

Atau, Anda dapat menambahkan PPA secara manual dengan memasukkan baris-baris ini ke /etc/apt/sources.list:

deb http://ppa.launchpad.net/ondrej/apache2/ubuntu xenial main
deb-src http://ppa.launchpad.net/ondrej/apache2/ubuntu xenial main

Setelah PPA ditambahkan, perbarui dan tingkatkan Apache:

sudo apt update
sudo apt upgrade

Ini akan memperbarui dan meningkatkan apache2 ke Apache 2.4.27+. Langkah

2: Beri tahu Apache untuk menggunakan PHP FastCGI

Anda ingin membuat Apache menggunakan implementasi PHP yang kompatibel dengan mengubah mod_php ke php-fpm (PHP FastCGI). Jika situs web atau aplikasi Anda berhenti menggunakan FastCGI, Anda selalu dapat kembali ke mod_php hingga pemecahan masalah lebih lanjut.

Instal modul PHP FastCGI untuk PHP 7.0 (ganti dengan “7.1” jika diinginkan):

sudo apt install php7.0-fpm
Aktifkan modul yang diperlukan, proxy_fcgi dan setenvif

sudo a2enmod proxy_fcgi setenvif
Aktifkan php7.0-fpm:

sudo a2enconf php7.0-fpm

Non aktifkan modul mod_php:

sudo a2dismod php7.0

Restart Apache

sudo service apache2 restart

Langkah 3: Ubah MPM dari “prefork” menjadi “event”

Karena “prefork” MPM (Modul Multi-Pemrosesan) default tidak sepenuhnya kompatibel dengan HTTP/2, Anda harus mengubah MPM Apache saat ini menjadi “event” (atau “pekerja”). Ini ditunjukkan oleh pesan kesalahan dalam versi Apache lebih dari 2.4.27 sebagai – AH10034: Modul mpm (prefork.c) tidak didukung oleh mod_http2.

Perlu diingat bahwa server Anda membutuhkan lebih banyak daya kuda untuk HTTP/2 daripada untuk HTTP/1.1, karena faktor multiplexing dan lainnya. Yang mengatakan, server yang lebih kecil dengan lalu lintas rendah mungkin tidak melihat banyak perbedaan dalam kinerja. Pertama, nonaktifkan MPM “prefork”:

sudo a2dismod mpm_prefork

Aktifkan “event” MPM:

sudo a2enmod mpm_event

Restart Apache and PHP 7.0:

sudo service apache2 restart
sudo service php7.0-fpm restart

Langkah 4: Tambahkan baris ke file Host Virtual Anda

Tambahkan baris berikut ke file konfigurasi Virtual Host situs Anda saat ini. Hal ini dapat terjadi di antara tag <VirtualHost> … </VirtualHost>. Jika Anda ingin menayangkan HTTP/2 untuk semua situs Anda, tambahkan ini ke file global /etc/apache2/apache2.conf Anda alih-alih per file Host Virtual masing-masing situs.

Protocols h2 h2c http/1.1

Penjelasan: h2 adalah HTTP/2 terenkripsi TLS, h2c adalah HTTP/2 teks standar, dan http/1.1 adalah HTTP/1.1 biasa. Memiliki http/1.1 di akhir baris menyediakan fallback ke HTTP / 1.1, sementara h2c tidak sepenuhnya diperlukan.

Langkah 5: Aktifkan modul Apache mod_http2

Sekarang Anda dapat mengaktifkan modul http2 di Apache:

sudo a2enmod http2

Restart Apache:

sudo service apache2 restart

Langkah 6: Uji server Apache Anda untuk HTTP / 2

Metode 1: “Periksa Elemen” di browser

Buka panel pengembang di browser web Anda dengan mengklik kanan di mana saja di situs web Anda dan memilih “Elemen Inspeksi” dari menu konteks. Buka tab Jaringan, lalu segarkan peramban Anda. Anda akan melihat semua permintaan HTTP tercantum. Klik pada permintaan untuk melihat informasi tajuk mentah. Di header, Anda akan melihat “HTTP/2.0” atau “h2”. Inilah yang akan Anda lihat jika berfungsi dengan benar:

https://techwombat.com/wp-content/uploads/2017/08/http2-request-header-enabled-apache2.png

Metode 2: Jalankan Uji Server HTTP / 2 online

Anda dapat menguji apakah HTTP/2 berfungsi di server Anda dengan memasukkan nama domain Anda ke dalam HTTP/2 Server Test dari KeyCDN. Informasi lebih lanjut tentang server Anda dapat ditemukan dengan menggunakan Uji SSL Labs Server.

Baca juga :

NFS File System Ubuntu 16.04 LTS Server