Membuat Virtual Host Apache di Debian 10

Apache Logo

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 :

Tampilan 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
Tampilan website yang diakses dengan https

Ulangi langkah di atas untuk menambahkan virtual host ketiga dst. Semoga bermanfaat.