0

Upgrade HTTP1/1 ke HTTP2 pada webserver apache di VPS

Upgrade http2

HTTP2 protocol test


Syarat untuk mengupgrade HTTP 1/1 ke HTTP2 pada apache adalah:

  • apache >= 2.4.17
  • php-fpm (tidak support menggunakan mod_php)
  • domain sudah menggunakan HTTPS


Spesifikasi yang saya gunakan dalam tutorial ini:

  • ubuntu 20.04 pada ec2 (AWS Cloud)
  • php 7.4
  • apache 2.4.41

Saran sebelum mengupgrade

Untuk mencegah hal yang tidak diinginkan, sebaiknya:

  • Pastikan konfigurasi apache dan php sudah dibackup
  • Akan ada downtime pada apache (karena perlu restart apache)
  • Sebaiknya test diserver testing dulu, jangan langsung di production


Cek versi apache

Untuk mengecek versi apache, gunakan command berikut:

apache2ctl -v
check apache version in terminal ubuntu, apache2ctl -v

Bisa dilihat diatas, apachenya versi 2.4.41 artinya sudah support HTTP2.

Cek mod_php apakah aktif?

Cek terlebih dahulu apakah mod_php masih aktif? jika iya maka harus dinonaktifkan karena mod_php tidak support http2.

Cek mod_php dengan command berikut:

apache2ctl -M | grep php
Upgrade http2

Pada gambar diatas, ternyata mod_php masih aktif (php7_module).

Untuk menonaktifkan mod_php, cari tahu dulu versi php yang digunakan:

php -v

Versi phpnya adalah 7.4.28. Sehingga untuk menonaktifkan mod_php adalah dengan cara:

a2dismod php7.4
Upgrade http2

Sampai sini jangan restart apachenya dulu, karena website akan down.

Nonaktifkan juga module mpm_prefork, karena nanti kita akan gunakan mpm_event agar bisa connect ke php-fpm

a2dismod mpm_prefork

Install php-fpm

Jalankan command berikut untuk menginstall php-fpm

apt-get install php7.4-fpm
systemctl enable php7.4-fpm
sudo apt install libapache2-mod-fcgid

Cek php-fpm sudah berjalan:

systemctl status php7.4-fpm
Upgrade http2

Sampai sini, php-fpm sudah running. Namun belum bisa connect ke apache.

Cara connect apache ke php-fpm

Supaya apache bisa connect ke php-fpm, install module apache berikut:

sudo a2enmod proxy_fcgi proxy setenvif
sudo a2enmod mpm_event
sudo a2enconf php7.4-fpm

Setelah itu kita cek dulu apakah ada konfigurasi apache yang error?

apachectl configtest

Jika outputnya Syntax OK, maka tidak ada yang error. Selanjutnya kita bisa restart apache dengan command:

systemctl restart apache2

Cara cek HTTP2

Buka website https://tools.keycdn.com/http2-test untuk mengecek HTTP2, lalu masukkan URL websitenya:

HTTP2 protocol test

Jika berhasil, outputnya HTTP/2 protocol is supported.

Kesimpulan

  • Untuk menggunakan HTTP2, apache harus menggunakan php-fpm dengan memanfaatkan mod_event, proxy_fcgi, proxy dan setenvif
  • Website harus menggunakan HTTPS agar HTTP2 bisa digunakan
  • mod_php (php7x_module) tidak support HTTP2
  • Jika kalian menggunakan mod_php, harus diswitch ke php-fpm
  • Selama proses upgrade ke HTTP2, apache harus direstart

Ambar Hasbiyatmoko

Hello, I'm web developer. Passionate about programming, web server, and networking.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.