Apa itu Host Virtual Apache?
Host Virtual memungkinkan Anda menjalankan beberapa situs web dari satu server fisik atau Server Pribadi Virtual. Ada dua jenis host virtual di Apache:
- Hosting Virtual Berbasis IP – setiap situs web individu di Server Apache menggunakan alamat IP unik yang berbeda.
- Host Virtual Berbasis Nama – memungkinkan Anda untuk menambahkan beberapa domain menggunakan satu alamat IP.
Tutorial ini menunjukkan cara menyiapkan Apache Virtual Host pada sistem Ubuntu 18.04.
Prasyarat
- Jendela baris perintah/terminal
- Pengguna dengan root atau sudo hak istimewa
- Domain yang menunjuk ke IP server publik
- Server web Apache di Ubuntu diinstal, dikonfigurasi, dan aktif
- Firewall diaktifkan
Menyiapkan Beberapa Domain pada Satu IP
Apache Virtual Host memungkinkan Anda memaksimalkan sumber daya saat menyiapkan situs web. Dengan perangkat lunak yang kuat ini, dapat menggunakan satu server dan satu alamat IP untuk meng-host sejumlah domain yang berbeda.
Sebelum Anda dapat mengkonfigurasi Apache Virtual Host, Anda perlu menginstal server web Apache. Untuk melakukannya, jalankan perintah:
sudo apt-get install apache2
Jika Anda memiliki masalah dalam menyiapkan server web, lihat tutorial mendalam kami tentang menginstal Apache di Ubuntu.
Cara Menyiapkan Host Virtual Berbasis Nama
Berbasis nama virtual hosting memungkinkan klien untuk melaporkan nama host ke server, sebagai elemen dari header HTTP. Fitur ini berarti bahwa satu mesin dapat menghosting beberapa situs web yang berbagi alamat IP yang sama.
Langkah 1:Buat Struktur Direktori
Setiap virtual host perlu memiliki direktori untuk menyimpan data virtual host. Buat direktori dan struktur direktori di lokasi berikut /var/www . Dalam contoh kami, kami telah membuat phxnap1.com dan phxnap2.com direktori, satu untuk setiap nama domain.
1. Masukkan perintah berikut dan ganti domain contoh dengan nama domain Anda:
sudo mkdir -p /var/www/phxnap1.com/public_html
sudo mkdir -p /var/www/phxnap2.com/public_html
Di dalam direktori, kami juga membuat public_html . Direktori ini akan menyimpan file situs web untuk domain.
2. Selanjutnya, buat contoh index.html halaman untuk setiap domain, menggunakan nano atau editor teks favorit Anda. Mulailah dengan domain pertama:
nano /var/www/phxnap1.com/public_html/index.html
3. Tambahkan contoh HTML berikut:
<html>
<head>
<title>Welcome to phoenixNAP 1!</title>
</head>
<body>
<h1>Well done! Everything seems to be working on your first domain!</h1>
</body>
</html>
4. Simpan dan keluar dari file.
5. Selanjutnya, buat halaman contoh untuk domain kedua:
nano /var/www/phxnap2.com/public_html/index.html
6. Tambahkan baris berikut ke file:
<html>
<head>
<title>Welcome to phoenixNAP 2!</title>
</head>
<body>
<h1>Well done! Everything seems to be working on your second domain!</h1>
</body>
</html>
7. Simpan dan keluar dari file HTML kedua.
8. Untuk mencegah masalah izin, ubah kepemilikan direktori root dokumen Anda menjadi www-data . Perintah chown berguna dalam hal ini:
sudo chown –R www-data:www-data /var/www/phxnap1.com
sudo chown –R www-data:www-data /var/www/phxnap2.com
Anda sekarang telah berhasil mengubah kepemilikan direktori menjadi Pengguna Apache .
Langkah 2:Buat File Konfigurasi Virtual Host
File konfigurasi Apache Virtual Host disimpan di /etc/apache2/sites-available direktori.
1. Untuk membuat file konfigurasi dasar untuk domain pertama Anda, masukkan informasi domain dengan perintah:
sudo nano /etc/apache2/sites-available/phxnap1.com.conf
2. Tambahkan blok konfigurasi berikut untuk membuat file konfigurasi dasar. Contoh ini menggunakan domain pengujian pertama, phxnap1.com . Pastikan untuk memasukkan domain yang benar untuk situs web Anda:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName phxnap1.com
ServerAlias www.phxnap1.com
DocumentRoot /var/www/phxnap1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/phxnap1.com-error.log
CustomLog ${APACHE_LOG_DIR}/phxnap1.com-access.log combined
</VirtualHost>
- Nama Server – mewakili domain
- ServerAlias – mewakili semua domain lain seperti subdomain
- DocumentRoot – direktori yang digunakan oleh Apache untuk melayani file domain
- ErrorLog, CustomLog – menunjukkan lokasi file log
Tidak ada format yang ditetapkan. Namun, memberi nama file konfigurasi Anda berdasarkan nama domain adalah "praktik terbaik".
4. Setelah Anda mengedit file konfigurasi untuk domain pertama, ulangi proses untuk sisanya. Dalam kasus kami, kami akan menjalankan:
sudo nano /etc/apache2/sites-available/phxnap2.com.conf
5. Kemudian, tambahkan blok konfigurasi seperti pada contoh di atas, pastikan untuk mengubah nilai phxnap2.com :
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName phxnap2.com
ServerAlias www.phxnap2.com
DocumentRoot /var/www/phxnap2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/phxnap2.com-error.log
CustomLog ${APACHE_LOG_DIR}/phxnap2.com-access.log combined
</VirtualHost>
Langkah 3:Aktifkan File Konfigurasi Virtual Host
Untuk mengaktifkan file host virtual, buat tautan simbolis dari file host virtual ke direktori yang mendukung situs. Apache2 membaca file ini saat menatap.
1. Gunakan a2ensite helper untuk mengaktifkan file host virtual dengan perintah:
sudo a2ensite phxnap1.com
Outputnya akan muncul sebagai:
2. Ulangi proses untuk domain kedua dengan mengetik:
sudo a2ensite phxnap2.com
3. Selanjutnya, verifikasi sintaks file konfigurasi sudah benar menggunakan perintah:
sudo apachectl configtest
Pesan di terminal akan mengonfirmasi bahwa sintaksnya benar:“Syntax OK”
4. Mulai ulang Apache2 agar perubahan diterapkan:
sudo systemctl restart apache2
5. Satu-satunya yang tersisa untuk dilakukan adalah membuka browser web dan mengakses situs web Anda. Berdasarkan index.html file yang kita buat sebelumnya, pesan yang sesuai akan muncul untuk setiap domain.
phxnap1.com
phxnap2.com
Langkah 4:Konfigurasi Firewall (Opsional)
Ubah pengaturan firewall Anda untuk meningkatkan keamanan dengan membuat aturan untuk mengaktifkan SSH di Ubuntu:
sudo ufw allow OpenSSH
Tambahkan aturan untuk mengizinkan akses ke Apache.
sudo ufw allow in “Apache Full”
Selanjutnya, aktifkan firewall.
sudo ufw enable
Jika Anda melihat pesan yang mengatakan “Perintah dapat mengganggu koneksi SSH yang ada.” Tekan y
. Jika firewall berfungsi dengan baik, Anda akan melihat “Firewall aktif dan diaktifkan saat startup sistem.”