Apache Virtual Host memungkinkan Anda menjalankan lebih dari satu situs web pada satu mesin server. Dengan Virtual Host, Anda dapat menentukan root dokumen situs (direktori yang berisi file situs web), membuat kebijakan keamanan terpisah untuk setiap situs, menggunakan berbagai sertifikat SSL dan banyak lagi.

Artikel ini akan membahas cara konfigurasi Apache Virtual Hosts di Ubuntu 20.04.

Prasyarat

Pastikan Anda telah memenuhi prasyarat berikut sebelum melanjutkan dengan tutorial ini:

Buat Struktur Direktori

Root dokumen adalah direktori tempat file situs web untuk nama domain disimpan dan menyajikan informasi sebagai tanggapan atas permintaan pengunjung. Anda dapat mengatur root dokumen ke lokasi mana pun yang Anda inginkan, dalam panduan ini kami akan menggunakan struktur direktori berikut:

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html

Pada dasarnya, kami akan membuat direktori terpisah untuk setiap domain yang ingin kami host di server kami di dalam direktori /var/www. Dalam setiap direktori ini, kami akan membuat direktori public_html yang akan menyimpan file situs web domain.

Mulai dengan membuat direktori root untuk domain example.com:

sudo mkdir -p /var/www/example.com/public_html

Untuk tujuan pengujian juga buat file index.html di dalam direktori root dokumen domain.

Buka editor Anda dan buat file demo:

/var/www/example.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Selamat Datang</title>
  </head>
  <body>
    <h1>Setup Untuk Situs example.com Berhasil!</h1>
  </body>
</html>

Dalam panduan ini, kita akan menjalankan perintah sebagai pengguna sudo dan file dan direktori yang baru dibuat secara otomatis menjadi milik root (super administrator).

Untuk menghindari masalah izin keamanan, kita akan mengubah kepemilikan direktori root dokumen domain menjadi pengguna apache (www-data):

sudo chown -R www-data: /var/www/example.com

Membuat Virtual Host

Secara default pada sistem Ubuntu, file konfigurasi Apache Virtual Host disimpan di direktori /etc/apache2/sites-available dan dapat diaktifkan dengan membuat symbolic links ke direktori /etc/apache2/sites-enabled.

Buka editor pilihan Anda dan buat file konfigurasi basic Virtual Host berikut:

sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/domain1.com/public_html

    <Directory /var/www/domain1.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
    CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined
</VirtualHost>
  • ServerName: Domain harus cocok dengan konfigurasi virtual host. ServerName harus menjadi nama domain Anda.
  • ServerAlias: jika Menginginkan domain anda menjadi www.example.com, maka gunakan ServerAlias.
  • DocumentRoot: Direktori tempat Apache akan melayani file domain dan juga tempat di mana Anda menyimpan file website Anda.
  • Options: directives ini mengontrol fitur server mana yang tersedia di direktori tertentu.
    • -Indexes Mencegah daftar direktori.
    • FollowSymLinks: Opsi ini memberi tahu server web Anda untuk mengikuti symbolic links.
  • AllowOverride: Menentukan directives mana yang dideklarasikan dalam file .htaccess yang dapat menimpa directives konfigurasi.
  •  ErrorLogCustomLog : Menentukan lokasi untuk file log.

Anda dapat memberi nama file konfigurasi sesuka Anda tetapi praktik terbaik adalah menggunakan nama domain sebagai nama file konfigurasi host virtual.

Aktifkan Virtual Host

Untuk mengaktifkan file host virtual baru, kita perlu membuat tautan simbolik dari file host virtual ke direktori sites-enabled, yang dibaca oleh apache2 saat startup. Cara termudah untuk mengaktifkan virtual host adalah dengan menggunakan a2ensite:

sudo a2ensite example.com

Opsi lainnya adalah membuat symlink secara manual seperti yang ditunjukkan di bawah ini:

sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/

Setelah selesai, uji konfigurasi untuk setiap kesalahan sintaks dengan:

sudo apachectl configtest

Jika tidak ada kesalahan, Anda akan melihat output berikut:

Syntax OK

Restart layanan Apache agar perubahan diterapkan:

sudo systemctl restart apache2

Akhirnya untuk memverifikasi bahwa semuanya berfungsi seperti yang diharapkan, buka http://example.com di browser pilihan Anda, dan Anda akan melihat sesuatu seperti ini:+

Konfigurasi Apache Virtual Hosts

Kesimpulan

Anda telah belajar cara membuat konfigurasi host virtual apache untuk meng-host beberapa domain pada satu server Ubuntu. Anda dapat mengulangi langkah-langkah yang kami uraikan di atas dan membuat host virtual tambahan untuk semua domain Anda.  Anda juga dapat melihat panduan kami tentang Amankan Apache dengan Let’s Encrypt untuk mengamankan lalu lintas di situs dan web server Anda.