Saat tulisan ini dibuat, terdapat lebih dari 40% website di dunia menggunakan Apache sebagai web server. Apache sangat populer di kalangan web developer. Kepopuler Apache disebabkan karena keandalan dan kemudahan melakukan konfigurasi.
Virtual host sebagai salah satu fitur andalan Apache memungkinkan satu buah web server digunakan oleh beberapa website sekaligus. Tentu saja hal ini akan menghemat pengeluaran. Berdasarkan dokumentasi di sini, batas maksimum jumlah virtual host (website) adalah 64. Namun jumlah tersebut masih dapat ditingkatkan dengan konfigurasi virtual host dinamis.
Tutorial kali ini akan membahas bagaimana cara membuat virtual host pada web server Apache.
Yang dibutuhkan
Pada tutorial ini saya menggunakan VPS f1-micro (512MB, 10 GB disk) dari Google Cloud. VPS tersebut berjalan dengan Debian 10 yang telah terpasang web server Apache2.
Langkah-langkah
Secara garis besar, pembuatan virtual host dibagi menjadi dua tahap. Tahap pertama adalah menyiapkan webroot, sedangkan tahap kedua adalah menambahkan konfigurasi.
Webroot adalah folder tempat meletakan file html, images, css, dll. Folder Webroot dapat dibuat dengan cara :
sudo mkdir -p /var/www/html/website2.example.com
Ganti website2.example.com dengan nama domain yang ingin Anda tambahkan. Langkah selanjutnya adalah mengubah kepemilikan dan permissions folder tersebut :
sudo chown -R $USER:$USER /var/www/html/website2.example.com sudo chmod -R 755 /var/www/html/website2.example.com
Tambahkan file index.html dengan cara :
sudo nano /var/www/html/website2.example.com/index.html
Lalu isi index.html dengan :
<html> <head> <title>Website 2</title> </head> <body> <h1>Sukses membuat virtual host!</h1> </body> </html>
Klik ctrl+x dan enter untuk menyimpan. Tahap kedua adalah membuat konfigurasi :
sudo nano /etc/apache2/sites-available/website2.example.com.conf
Isi website2.example.com.conf dengan :
<VirtualHost *:80> # atur email server admin ServerAdmin [email protected] # atur nama domain dan alias. Alias bersifat opsional, hapus baris alias jika tidak digunakan ServerName website2.example.com ServerAlias www.website2.example.com # arahkan ke webroot yang telah dibuat DocumentRoot /var/www/html/website2.example.com/ # buat error log ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Tekan ctrl + x dan enter untuk menyimpan. Aktifkan konfigurasi yang telah dibuat
sudo a2ensite website2.example.com.conf sudo systemctl restart apache2
Akses alamat website :
Konfigurasi https (opsional)
Tanda “not secure” yang muncul di browser menandakan web tersebut diakses menggunakan protokol http. Jika ingin mengaktifkan https maka ada dua hal yang harus dilakukan, pertama Anda harus membuat sertifikat terlebih dahulu. Sertifikat dapat Anda beli ke penyedia layanan. Anda juga bisa mendapatkanya secara gratis menggunakan Let’s Encrypt atau BuyPass.
Kedua, Anda perlu menambahkan konfigurasi https di Apache dengan cara :
sudo nano /etc/apache2/sites-available/website2.example.com.ssl.conf
Masukkan konfigurasi berikut :
<VirtualHost *:443> # arahkan ke webroot DocumentRoot /var/www/html/website2.example.com/ # masukkan alamat website ServerName website2.example.com # aktifkan SSLengine SSLEngine on # arahkan ke lokasi file sertifikat SSLCertificateFile /etc/letsencrypt/live/website2.example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/website2.example.com/privkey.pem </VirtualHost>
Tekan ctrl+x dan enter untuk menyimpan. Setelah itu aktifkan konfigurasi yang telah dibuat
sudo a2ensite website2.example.com.ssl.conf sudo systemctl restart apache2
Ulangi langkah di atas untuk menambahkan virtual host ketiga dst. Semoga bermanfaat.