Virtual host adalah metode untuk menghosting beberapa nama domain (dengan penanganan terpisah untuk setiap nama) pada satu server (atau kumpulan server). Virtual host ini memungkinkan satu server untuk berbagi sumber dayanya, seperti siklus memori dan prosesor, tanpa mengharuskan semua layanan yang disediakan untuk menggunakan nama host yang sama.
Istilah virtual host biasanya digunakan untuk merujuk ke server web tetapi prinsipnya memang terbawa ke layanan cloud. Untuk penjelasan lebih lengkapnya, mari simak di bawah ini!
Apa Itu Virtual Host?
Seperti yang sudah dijelaskan di atas, virtual host adalah metode untuk menambahkan beberapa domain dalam satu server yang sama. Ini berarti Anda dapat membuat beberapa situs web sekaligus dengan domain berbeda di server yang sama.
Sumber daya server seperti siklus memori, prosesor, dan lain sebagainya, dapat dibagikan untuk setiap virtual host yang dijalankan. Oleh karena itu, virtual host tidak memerlukan sumber daya tambahan, membuatnya lebih hemat dari segi biaya.
Contoh Virtual Host
Saat ingin membuat konfigurasi virtual host, Anda harus memasukkan script virtual host di sisi web server yang digunakan. Berikut ini contoh script konfigurasi pada cloudeka.co.id dengan akses menggunakan port 8090.
ServerAdmin admin@cloudeka.co.id
ServerName cloudeka.co.id
ServerAlias www.cloudeka.co.id
DocumentRoot /var/www/cloudeka.co.id/publik-folder
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Tipe-Tipe Virtual Host
Ada tiga jenis konfigurasi yang dapat dilakukan di virtual host, antara lain:
1. IP Based Virtual Hosts
Pada jenis ini, virtual host menggunkan alamat IP yang unik di setiap situs yang dihostingnya.Setiap situs web menggunakan alamat IP (IP address) yang berbeda.
2. Port Based Virtual Hosts
Jenis ini merupakan teknik hosting web yang memungkinkan beberapa situs web dihosting pada satu server menggunakan port yang berbeda. Dengan kata lain, setiap situs web menggunakan alamat IP yang sama tetapi pada port yang berbeda.
3. Name Based Virtual Hosts
Setiap situs web menggunakan alamat IP yang sama dengan nama host yang berbeda. Jenis ini merupakan pendekatan virtual hosting yang sangat populer saat ini.
Baca juga: Apa Itu Server dan Seberapa Penting Peranannya?
Bagaimana Cara Membuat Virtual Host?
Untuk membuat sebuah virtual host, salah satu aplikasi yang dapat digunakan adalah Apache. Maka dari itu, hal pertama yang harus Anda lakukan untuk membuat virtual host adalah melakukan pemasangan aplikasi Apache terlebih dahulu.
Jika aplikasi apache sudah terpasang, selanjutnya Anda dapat mengikuti langkah-langkah di bawah ini untuk melakukan konfigurasi virtual host.
1. Membuat Direktori Baru
Langkah pertama dalam pembuatan virtual host menggunakan Apache adalah membuat struktur direktori server yang baru. Struktur direktori ini yang nantinya akan digunakan untuk menyimpan semua data dan informasi dari situs web tersebut. Pada Apache, lokasi penyimpanan data dan informasi pada sebuah situs web berada dalam direktori /var/www/html.
Untuk membuat direktori baru, pertama-tama Anda harus membuat folder baru bernama public_html pada direktori /var/www/html yang akan digunakan untuk menyimpan data dan informasi dari masing-masing domain. Selanjutnya, jalankan perintah berikut ini untuk membuat folder pada direktori tersebut:
# sudo mkdir -p /var/www/html/public_html
Baca juga: Apa Itu Database? Apakah Penting Untuk Website?
2. Membuka Permissions Folder
Untuk dapat memodifikasi berkas di direktori yang telah dibuat, Anda perlu mengubah permissions, atau izin pengaksesan, yang masih dimiliki oleh user root. Tujuan dari pembukaan akses ini adalah agar pengguna biasa dapat mengubah berkas yang ada di dalam direktori /var/www/html/.
Anda dapat menjalankan perintah berikut ini untuk mengubah izin pengaksesan di dalam folder tersebut:
sudo chown -R $USER:$USER /var/www/html/public_html
Setelah tombol Enter ditekan, nilai dari pengguna yang sedang aktif akan diambil oleh variabel $USER.
Setelah Anda melakukan hal di atas, sekarang Anda sudah bisa menambah atau mengubah berkas yang ada di dalam direktori /var/www/html.
3. Membuat Halaman Demo Untuk Percobaan
Tahap selanjutnya adalah membuat halaman demo HTML untuk melakukan percobaan virtual host baru. Pada direktori public_html, jalankan perintah berikut ini:
# cd /var/www/html/public_html
Buat berkas bernama index.html pada direktori yang sama dengan menggunakan perintah:
# touch index.html
Lalu, buka berkas tersebut dengan perintah:
# nano index.html
Kemudian, pada berkas tersebut, salin kode berikut ini:
<!DOCTYPE html>
<html>
<body>
<h1>Asik!</h1>
<p>Testing Virtual Host Sukses</p>
</body>
</html>
Simpan perubahan berkas dengan menekan tombol Ctrl + X > Y > ENTER pada keyboard Anda.
4. Membuat Berkas Virtual Host Baru
Setelah percobaan berhasil, selanjutnya Anda perlu membuat berkas host baru di dalam web server Apache. Akan ada berkas virtual host bawaan yang bernama 000-default.conf. Untuk membuat berkas baru, salin berkas tersebut dengan menjalankan perintah:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/website-1.conf
Setelah perintah tersebut dijalankan, berkas baru bernama website-1.conf. Berkas tersebut adalah salinan dari berkas 000-default.conf.
Selanjutnya, buka berkas website-1.conf tersebut dengan menggunakan perintah di bawah ini:
nano /etc/apache2/sites-available/website-1.conf
Pada berkas ini, Anda akan dapat mengatur dan menambah beberapa kode baru sesuai dengan yang domain butuhkan.
Baca juga: Cara Membuat Website untuk Pemula
Hapus semua baris text yang memiliki tanda # agar berkas tersebut terlihat lebih rapi. Teks yang menggunakan tanda tersebut hanya merupakan text yang berisi informasi mengenai cara penggunaan berkas tersebut. Selanjutnya, ubah baris kode ServerAdmin menjadi email yang dipakai oleh administrator. Sebagai contoh:
ServerAdmin adminCloudeka@website-1.com
Kemudian, dibawah baris kode ServerAdmin, tambahkan dua baris kode berikut ini:
ServerName DomainAnda.com
ServerAlias www.DomainAnda.com
Fungsi dari ServerName adalah untuk memberikan informasi mengenai domain yang akan menggunakan virtual host ini. Sedangkan fungsi dari ServerAlias adalah untuk menentukan alamat lain yang ingin menggunakan virtual host ini.
Terakhir, atur DocumentRoot virtual host agar dapat bekerja di dalam direktori public_html yang telah dibuat sebelumnya dengan perintah di bawah ini:
DocumentRoot /var/www/html/public_html
Berikut ini adalah hasil akhir dari berkas website-1.conf.
<VirtualHost *:80>
ServerAdmin admin@website-1.com
ServerName DomainAnda.com
ServerAlias www.DomainAnda.com
DocumentRoot /var/www/html/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Tekan tombol Ctrl + X > Y > Enter pada keyboard Anda untuk menyimpan perubahan yang telah dibuat.
Anda bisa langsung menyalin script tersebut ke dalam berkas virtual host baru Anda. Pastikan email dan domain sesuai agar berjalan lancar.
5. Mengaktifkan Virtual Host Baru
Setelah Anda berhasil membuat berkas virtual host baru, selanjutnya Anda perlu mengaktifkan virtual host tersebut dengan menggunakan perintah di bawah ini:
sudo a2ensite website-1.conf
Lalu, Anda perlu menonaktifkan konfigurasi bawaan Apache yang berada pada berkas 000-default.conf dengan perintah berikut ini:
sudo a2dissite 000-default.conf
Selanjutnya, Anda perlu memulai ulang Apache untuk menerapkan konfigurasi yang baru dengan menjalankan perintah di bawah ini:
sudo systemctl restart apach e2
Jika sudah, selanjutnya Anda hanya perlu mengakses domain yang ditulis di sebelah ServerName untuk mengecek apakah virtual host berhasil dibuat atau tidak. Jika virtual host menampilkan tulisan, “Asik! Testing Virtual Host Sukses”, maka artinya virtual host telah berhasil dibuat.
Multi-tenancy pada Virtual Host
Ada banyak penyedia komputasi cloud yang memungkinkan sistem multi-tenancy di mana setiap tenant dapat berbagi sumber daya komputasi dengan satu sama lainnya. Multi-tenant dalam komputasi cloud juga dapat menyediakan kumpulan sumber daya yang lebih besar untuk sekelompok pengguna yang lebih besar tanpa memperlambat aplikasi serta mengorbankan privasi dan keamanan.
Jika sudah membuat virtual host, Anda dapat menggunakan Deka Flexi (FX2) dari Cloudeka untuk menunjang media penyimpanan dari situs web tersebut. Semoga penjelasan mengenai virtual host ini dapat membantu, ya!