Buat Host Virtual Berbasis Nama Apache dan Berbasis IP di Linux


Virtual Hosting adalah konsep di mana beberapa situs web atau domain dihosting di satu server, yang dilakukan untuk mengurangi overhead sumber daya dan biaya operasional bisnis atau organisasi.

Server web Apache menyederhanakan hosting beberapa situs dengan memungkinkan administrator sistem mengkonfigurasi host virtual dengan mudah untuk setiap situs web. Hosting virtual dapat berbasis IP atau berbasis nama.

Dalam tutorial ini, kita mempelajari cara menyiapkan hosting virtual di distribusi berbasis RHEL seperti Fedora, CentOS Stream, Rocky Linux, dan < kuat>Alma Linux menggunakan host virtual berbasis IP dan berbasis nama di Linux.

Konsep Shared Web Hosting dan Reseller Web Hosting terutama didasarkan pada fitur Apache ini.

Jenis Hosting Virtual Apache di Linux

Ada dua jenis Virtual Hosting yang tersedia dengan Apache.

Hosting Virtual Berbasis Nama

Pada jenis hosting ini, beberapa domain atau situs web dapat dihosting di satu server hanya dengan menggunakan satu alamat IP. Sederhananya, semua domain akan berbagi satu alamat IP. Ini adalah jenis hosting virtual yang paling mudah dikonfigurasi karena yang perlu Anda lakukan hanyalah memetakan nama domain ke alamat IP dan kemudian mengonfigurasi host virtual Apache untuk setiap nama domain.

Hosting Virtual Berbasis IP

Hosting virtual berbasis IP adalah tempat setiap domain diberi alamat IP unik. Alamat IP ini dapat dihubungkan ke server menggunakan beberapa kartu NIC atau satu kartu NIC.

Lingkungan Pengujian

  • OSFedora 34
  • AplikasiServer Web Apache
  • Alamat IP192.168.2.105
  • Alamat IP192.168.2.106
  • Domainwww.domainku1.com
  • Domainwww.domainsaya2.com

Cara Mengatur Host Virtual Apache Berbasis IP dan Berbasis Nama

Sebelum memulai, pastikan server web Apache diinstal pada sistem Anda menggunakan perintah dnf seperti yang ditunjukkan.

sudo dnf install httpd -y

Siapkan Hosting Virtual Berbasis Nama

Langkah pertama dalam menyiapkan hosting virtual berbasis nama adalah menyiapkan resolusi nama domain di file /etc/hosts. Oleh karena itu, jalankan perintah berikut sebagai pengguna root untuk menambahkan entri nama domain yang menunjuk ke alamat IP host.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.105 www.mydomain2.com' >> /etc/hosts

Langkah selanjutnya adalah membuat direktori yang akan berisi file website. Oleh karena itu, kita akan membuat dua direktori untuk virtual host di Document Root yaitu folder /var/www/html pada konfigurasi Apache.

sudo mkdir /var/www/html/mydomain1.com/
sudo mkdir /var/www/html/mydomain2.com/

Langkah selanjutnya adalah memodifikasi file host virtual yang akan menginstruksikan Apache IP untuk mendengarkan permintaan server web Apache yang masuk untuk semua nama domain. Oleh karena itu, buka file konfigurasi Apache menggunakan editor teks pilihan Anda.

sudo vim /etc/httpd/conf/httpd.conf

Tambahkan blok kode berikut untuk dua host virtual.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.105:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Simpan perubahan dan keluar. Selanjutnya, periksa apakah sintaksnya baik-baik saja dan tidak ada kesalahan.

httpd -t

Selanjutnya, kita akan membuat halaman pengujian HTML untuk masing-masing domain dan menambahkan beberapa konten sebagai cara untuk mengonfirmasi apakah semuanya berfungsi dengan baik dari browser.

Untuk domainku1.com

Buat file index.html di direktori domainku1.com.

sudo vim /var/www/html/mydomain1.com/index.html 

Rekatkan baris berikut.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain1.com.</h1>
  </body>
</html>

Simpan perubahan dan keluar dari file.

Untuk domainku2.com

Buat file index.html di direktori domainsaya2.com.

sudo vim /var/www/html/mydomain2.com/index.html 

Rekatkan baris berikut.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain2.com.</h1>
  </body>
</html>

Simpan perubahan dan keluar dari file.

Sekarang mulai server web Apache dan konfirmasikan bahwa itu sedang berjalan.

sudo systemctl start httpd
sudo systemctl status httpd

Jika Anda mengaktifkan firewall, izinkan lalu lintas HTTP dan HTTPS ( bila perlu).

sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload

Sekarang uji domain dari browser.

Setup Virtual Hosting Berbasis IP Linux

Hosting virtual berbasis IP, seperti namanya, melibatkan beberapa alamat IP yang ditetapkan ke server Linux Anda. Dalam kebanyakan kasus, dua atau lebih kartu NIC terpasang ke sistem Anda untuk memberikan beberapa alamat IP.

Tujuan dari hosting virtual berbasis IP adalah untuk menetapkan setiap domain ke alamat IP unik yang tidak akan digunakan oleh domain lain.

Ini ideal untuk situasi ketika Anda memiliki situs web yang dienkripsi dengan sertifikat SSL (mod_ssl) atau berjalan pada port yang berbeda. Dalam pengaturan kami, kami memiliki dua adaptor NIC.

Untuk melihat konfigurasi IP pada sistem Anda, jalankan perintah ifconfig atau ip a.

ifconfig
OR
ip addr

Server kami memiliki dua alamat IP, masing-masing ditetapkan ke satu NIC. IP 192.168.2.106 ditetapkan ke ens160 dan 192.168.2.105 ditetapkan ke ens224.

Sekali lagi, mari konfigurasikan file httpd.conf.

sudo vim /etc/httpd/conf/httpd.conf

Buat host virtual untuk kedua domain seperti yang ditunjukkan. Pastikan setiap alamat IP ditetapkan ke konfigurasi host virtualnya masing-masing.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.106:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Simpan dan keluar dari file konfigurasi. Selanjutnya, ubah file /etc/hosts seperti yang ditunjukkan.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.106 www.mydomain2.com'>> /etc/hosts

Konfirmasikan entri:

cat /etc/hosts

192.168.2.105 www.mydomain1.com
192.168.2.106 www.mydomain2.com

Selanjutnya, restart server web Apache agar perubahan diterapkan.

sudo systemctl restart httpd

Terakhir, uji pengaturan hosting Virtual berbasis IP Anda dengan mengakses URL seperti yang ditunjukkan.

http://192.168.2.105
http://192.168.2.106

Tes ini mengonfirmasi bahwa hosting virtual berbasis IP berfungsi seperti yang diharapkan!

Kesimpulan

Dan itu saja untuk kuliah ini. Kami berharap Anda dapat mengonfigurasi kedua jenis hosting virtual dengan lancar tanpa banyak masalah. Masukan Anda mengenai panduan ini sangat kami hargai.