GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengatur Konfigurasi Apache Virtual Host (Dengan Contoh)

Menggunakan Apache Virtual Host, Anda dapat menjalankan beberapa situs web di server yang sama.

Misalnya, saya dapat menjalankan thegeekstuff.com dan top5freeware.com pada satu server fisik yang memiliki satu server web Apache yang berjalan di dalamnya.

Gambar:Apache Virtual Host (Beberapa situs web, satu Apache)


Ada dua jenis konfigurasi virtual host Apache:1) Virtual Host Berbasis IP dan 2) Host Virtual Berbasis Nama. Host virtual berbasis nama direkomendasikan untuk sebagian besar skenario.

Host Virtual Berbasis IP

Dalam konfigurasi ini, ketika Anda mengarahkan dua situs web (dengan alamat ip yang berbeda) ke server yang menjalankan Apache, server fisik tersebut harus memiliki dua alamat ip yang berbeda yang dikonfigurasi.

Ini berarti bahwa server harus memiliki dua kartu ethernet, masing-masing dikonfigurasi ke alamat ip situs web terkait yang akan dilayani oleh host virtual Apache. Jadi, ini tidak praktis untuk sebagian besar aspek, dan Anda tidak boleh menggunakan ini.

Dalam contoh berikut, server berisi dua kartu NIC, satu dikonfigurasi dengan alamat ip 192.168.101.1 untuk thegeekstuff.com, yang lain dikonfigurasi dengan 192.168.102.1 untuk top5freeware.com. Kedua ip-address ini dilayani oleh server web Apache tunggal yang berjalan di server tersebut menggunakan virtual host berbasis IP.

Gambar:Host Virtual Berbasis IP Apache

Host Virtual Berbasis Nama

Dalam konfigurasi ini, ketika server web Apache menerima permintaan, ia mencari nama host di header HTTP, dan tergantung pada nama host, server situs web yang berbeda. Ini sangat mudah, karena Anda hanya memerlukan satu alamat ip di server fisik itu; tetapi, Anda memperbarui DNS dengan beberapa nama situs web yang menunjuk ke alamat ip yang sama. Untuk semua tujuan praktis, Anda hanya akan menggunakan konfigurasi host virtual berbasis Nama.

Dalam contoh berikut, server hanya berisi satu kartu NIC, yang dikonfigurasi dengan alamat ip 192.168.101.1. Entri DNS untuk situs web thegeekstuff.com dan top5freeware.com menunjuk ke alamat ip 192.168.101.1. Saat Apache menerima permintaan, Apache mencari entri nama host di header HTTP, dan melayani situs web terkait.

Gambar:Host Virtual Berbasis Nama Apache

1. Batalkan komentar httpd-vhosts.conf di httpd.conf

Jika Anda telah menginstal Apache 2 dari sumber, secara default, baris berikut akan dikomentari di file httpd.conf. Batalkan komentar pada baris ini.

# vi /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf

2. Siapkan host virtual

Ubah httpd-vhosts.conf seperti yang ditunjukkan di bawah ini untuk menyiapkan pengaturan host virtual berbasis nama untuk dua host.

  • NameVirtualHost *:80 – Menunjukkan bahwa semua host virtual berbasis nama akan mendengarkan pada port default 80
  • – Lampirkan semua parameter konfigurasi apache untuk setiap host virtual di antara tag VirtualHost ini. Semua arahan apache dapat digunakan dalam wadah virtualhost.
  • Dalam contoh berikut, kami menyiapkan virtual host untuk thegeekstuff.com dan top5freeware.com mendengarkan pada port yang sama 80. Jadi, akan ada dua , satu untuk setiap situs web .
  • Saat Anda membuka thegeekstuff.com, file di bawah /usr/local/Apache2/docs/thegeekstuff akan dilayani oleh Apache; dan access_log dan error_log untuk situs ini akan berada di bawah /usr/local/Apache2/logs/thegeekstuff
# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/docs/thegeekstuff"
    ServerName thegeekstuff.com
    ServerAlias www.thegeekstuff.com
    ErrorLog "logs/thegeekstuff/error_log"
    CustomLog "logs/thegeekstuff/access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/docs/top5freeware"
    ServerName top5freeware.com
    ServerAlias www.top5freeware.com
    ErrorLog "logs/top5freeware/error_log"
    CustomLog "logs/top5freeware/access_log" common
</VirtualHost>

3. Periksa Sintaks Konfigurasi VirtualHost

Verifikasi sintaks konfigurasi virtual menggunakan "httpd -S" seperti yang ditunjukkan di bawah ini. Ketika semuanya sudah diatur dengan benar, itu hanya menampilkan "Sintaks OK".

# /usr/local/apache2/bin/httpd -S
VirtualHost configuration:
Syntax OK

Ketika ada sesuatu yang tidak dikonfigurasi dengan benar, maka akan muncul pesan peringatan, termasuk pesan “directory not exit” seperti yang ditunjukkan di bawah ini.

# /usr/local/apache2/bin/httpd -S
Warning: DocumentRoot [/usr/local/apache2/docs/top5freeware] does not exist
Warning: ErrorLog [/usr/local/apache2/logs/thegeekstuff] does not exist
Syntax OK

4. Mulai ulang Apache dan uji

# /usr/local/apache2/bin/apachectl restart

Sekarang, ketika Anda membuka thegeekstuff.com (atau www.thegeekstuff.com), apache akan menyajikan file dari direktori /usr/local/apache2/docs/thegeekstuff.

Saat Anda membuka top5freeware.com (atau www.top5freeware.com), apache yang sama yang berjalan di server yang sama akan melayani file dari direktori /usr/local/apache2/docs/top5freeware.

Sekadar menegaskan, agar host virtual berbasis nama berfungsi dengan baik, entri DNS untuk kedua situs web ini harus mengarah ke alamat ip eksternal yang sama dari server fisik tempat server web Apache dijalankan.


Linux
  1. Siapkan Host Virtual Berbasis Nama di Apache

  2. Cara Setup ZFS Filesystem di Linux dengan Contoh Perintah zpool

  3. Cara mengkonfigurasi host virtual Apache di ubuntu

  1. Cara mengatur SSL/TLS dengan Apache httpd di Red Hat

  2. Cara Membuat Apache Virtual Host di CentOS 7

  3. Cara mengatur kluster Apache Tomcat dengan 3 Node di Ubuntu

  1. Cara Membuat Host Virtual Di Server Apache Untuk Meng-host Banyak Situs Web

  2. Cara Mengonfigurasi Host Virtual Apache Di Ubuntu 18.04 LTS

  3. Cara Setup WordPress di Server Ubuntu dengan Apache