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:
- Memiliki nama domain yang menunjuk ke IP server publik Anda. Kami akan menggunakan
example.com
. - Anda telah menginstal Apache dengan mengikuti instruksi ini.
- Anda masuk sebagai pengguna dengan hak istimewa sudo.
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.-
ErrorLog
,CustomLog
: 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:+
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.