Konfigurasi virtual host Apache

Panduan cara membuat konfigurasi virtual host Apache, agar server/VPS mampu untuk menampung lebih dari satu atau banyak website.

Berikut tutorial langkah-langkah membuat virtual host di Apache.

1. Menghubungkan domain ke VPS

Arahkan domain name server ke IP VPS Anda atau cukup menggunakan layanan DNS hosting gratis dari Cloudflare.com. Ini dilakukan pertama karena propagasi DNS membutuhkan waktu paling tidak 1×24 jam agar domain resolved ke server.

2. Akses server melalui SSH menggunakan Putty

Sebelumnya pernah dibahas cara menggunakan putty untuk login SSH VPS. Baca: Cara menggunakan putty.

3. Membuat direktori baru untuk setiap domain

Membuat direktori baru, fungsinya untuk menyimpan file-file website untuk setiap nama domain. sebagai contoh agar pada langkah selanjutnya dapat memudahkan Anda mengikuti tutorial ini saya akan membuat virtual host untuk domain dengan rincian sebagai berikut:

  • idnetter.com direktori webnya di /var/www/idnetter.com/public_html
  • idnetter.net direktori webnya di /var/www/idnetter.net/public_html

Perintahnya untuk membuat direktori baru sesuai struktur diatas adalah sebagai berikut:

mkdir -p /var/www/{idnetter.com,idnetter.net}/public_html

Perintah tersebut akan sekaligus membuat dua direktori idnetter.com dan idnetter.net di dalam /var/www

4. Menambahkan domain

Selanjutnya adalah membuat file konfigurasi virtual host untuk memetakan tiap-tiap nama domain, dalam contoh tutorial ini yaitu domainidnetter.com dan idnetter.net.

Untuk Debian/Ubuntu buat file konfigurasi baru di folder /etc/apache2/sites-available/

nano /etc/apache2/sites-available/idnetter.com.conf

Sedangkan di Linux CentOS letak konfigurasinya berbeda yaitu di /etc/httpd/conf.d/, jadi

nano /etc/httpd/conf.d/idnetter.com.conf

Kemudian, isi dengan konfigurasi berikut, silahkan ubah sesuai dengan domain Anda.

<VirtualHost *:80>

        ServerName idnetter.com
        ServerAlias www.idnetter.com
        ServerAdmin [email protected]
        DocumentRoot /var/www/idnetter.com/public_html

        <Directory "/var/www/idnetter.com/public_html">
               Options FollowSymLinks
               AllowOverride All
        </Directory>

        LogLevel warn

        ErrorLog /var/www/idnetter.com/public_html/error.log
        CustomLog /var/www/idnetter.com/public_html/access.log combined

</VirtualHost>

Untuk domain idnetter.com, kemudian buat juga file config untuk domain idnetter.net

Untuk Debian/Ubuntu

nano /etc/apache2/sites-available/idnetter.net.conf

Untuk CentOS

nano /etc/httpd/conf.d/idnetter.net.conf

Isinya tinggal modifikasi sedikit

<VirtualHost *:80>

        ServerName idnetter.net
        ServerAlias www.idnetter.net
        ServerAdmin [email protected]
        DocumentRoot /var/www/idnetter.net/public_html

        <Directory "/var/www/idnetter.net/public_html">
              Options FollowSymLinks
              AllowOverride All
        </Directory>

        LogLevel warn

        ErrorLog /var/www/idnetter.net/public_html/error.log
        CustomLog /var/www/idnetter.net/public_html/access.log combined

</VirtualHost>

Ubuntu/Debian

Untuk Ubuntu/Debian jalankan perintah berikut

a2ensite idnetter.com
a2ensite idnetter.net

Simpan, kemudian restart Apache.

5. Restart Apache

Untuk Debian/Ubuntu

service apache2 restart

Untuk CentOS

service httpd restart

6. Uji coba

Buat file index.html untuk setiap nama domain

Untuk idnetter.com

echo "<center>Halo idnetter.com</center>" | sudo tee /var/www/idnetter.com/public_html/index.html

Untuk idnetter.net

echo "<center>Halo idnetter.net</center>" | sudo tee /var/www/idnetter.net/public_html/index.html

Akses domain menggunakan browser

Bonus konfigurasi virtual host SSL

Ini adalah contoh virtual host apache dengan SSL

<VirtualHost *:443>
    ServerName www.idnetter.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/idnetter.com/public_html

    <Directory "/var/www/idnetter.com/public_html">
        Options FollowSymLinks
        AllowOverride All
    </Directory>

    # Let's Encrypt
    SSLEngine on
    SSLVerifyClient none
    SSLCertificateFile /etc/letsencrypt/live/idnetter.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/idnetter.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/idnetter.com/fullchain.pem

    LogLevel warn

    ErrorLog /var/www/idnetter.com/public_htmlerror_log
    CustomLog /var/www/idnetter.com/public_htmlaccess_log combined
</VirtualHost>

Kesimpulan

Banyak keuntungan memiliki VPS salah satunya bisa untuk menghostingkan website/domain dalam satu IP dedicated. Dibanding shared hosting, VPS juga lebih baik untuk SEO. Nah bagaimana Anda tertarik untuk migrasi dari shared hosting ke VPS?

Hubungi 081235008433 melalui WhatsApp untuk jasa migrasi website/blog dari shared hosting ke Virtual Private Server.

Referensi: Apache Virtual Host Documentation.

2 thoughts on “Konfigurasi virtual host Apache

  1. Rogers Dwiputra

    Halo, setelah saya berhasil konfigurasi virtual host, saya jadi tidak bisa akses VPS via IP, saya mau akses database management adminer, biasanya saya akses 123.456.789.10/adminer

  2. Abbad

    Update Apache2.4 Wilcard/Positif SSL Sectigo

    
    	SSLEngine on
    	SSLCertificateFile      /etc/apache2/ssl/idnetter.com.crt
    	SSLCertificateKeyFile /etc/apache2/ssl/idnetter.com.key
    	SSLCertificateChainFile /etc/apache2/ssl/idnetter.com.ca-bundle
    
    

    Keterangan:

    Struktur SSL untuk Apache2, yang kita butuh hanya 2 file.

    • SSLCertificateFile Domain CRT
    • SSLCertificateChainFile ini isinya CA Bundle (Diurutkan berdasarkan tanggal kadaluarsa (paling lama/issued paling baru)

Add a comment