Lompat ke konten Lompat ke sidebar Lompat ke footer

cara setting virtual host di ubuntu server 16.04

cara setting virtual host di ubuntu server 16.04

Pada artikel kali ini saya akan sharing tentang bagaimana cara setting virtual host di ubuntu server 16.04. Virtual Hosting atau biasa disebut virtual host adalah metode Hosting yang memungkinkan kita untuk dapat menggunakan beberapa nama domain dalam satu server atau satu IP Address.

Fungsi dari virtual host adalah menyediakan ruang penyimpanan untuk file website kita agar dapat di akses oleh Client menggunakan browser, lalu untuk dapat di akses dengan menggunakan nama domain kita membutuhkan DNS Server, jadi satu website dengan satu nama domain. 

Lalu bagaimana jika kita ingin mengelola banyak website dengan nama domain yang berbeda-beda danam satu IP Server, caranya adalah dengan menggunakan metode virtual host. Jadi dengan menggunakan metode Virtual Host kita dapat dengan mudah mengelola banyak domain dalam satu IP Server.

Pada Tutorial kali ini kita akan belajar bagaimana cara setting virtual host di ubuntu server 16.04, dan untuk lab kali ini kita akan membuat tiga nama domain yaitu website1.com, website2.com dan website3.com, lalu kita akan setting virtual host dan juga kita akan buat SSL-Certificate.

Untuk aplikasi yang kita butuhkan adalah sebagai berikut, yang pertama adalah Apache2, ini kita gunakan sebagai Web Server dan yang kedua adalah DNS Server, aplikasi ini untuk membuat nama domain. Sebelumnya untuk konfigurasi pada network interface yang saya gunakan adalah sebagai berikut.

1. Konfigurasasi Network Interface

root@ubuntu:~# nano /etc/network/interfaces

# The primary network Interface
auto enp0s3
iface enp0s3 inet static
address 192.168.60.222
netmask 255.255.255.0
gateway 192.168.60.1
dns-search website1.com website2.com website3.com
dns-nameservers 192.168.60.222 192.168.60.1

2. Konfigurasi Hosts

root@ubuntu:~# nano /etc/hosts

127.0.0.1 localhost
127.0.1.1 ubuntu
192.168.60.222 website1.com
192.168.60.222 website2.com
192.168.60.222 website3.com

3. Konfigurasi DNS

root@ubuntu:~# nano /etc/resolv.conf

nameservers 192.168.60.222
nameservers 192.168.60.1
search website1.com website2.com website3.com


STEP 1 - Install Apache Web Server

Untuk aplikasi yang pertama kita installa adalah apache2, aplikasi ini akan kita gunakan sebagai web server, untuk install apache silahkan jalankan perintah berikut ini.

root@ubuntu:~# apt-get install apache2

Untuk pengetesan silahkan buka browser dari PC Client lalu akses menggunakan url http://[ip address server] jika berhasil akan muncul Default page ubuntu, ini berarti apache siap digunakan.

cara setting virtual host di ubuntu server 16.04


STEP 2 - Install DNS-Server

Silahkan login sebagai root lalu jalankan perintah dibawah ini untuk install DNS Server

root@ubuntu:~# apt-get install bind9

STEP 3 - Konfigurasi DNS-Server

Sebagai Contoh kita akan membuat 3 buah domain yaitu website1.com, website2.com dan website3.com

root@ubuntu:~# cd /etc/bind/
root@ubuntu:/etc/bind/# cp db.127 db.website
root@ubuntu:/etc/bind/# cp db.127 db.website1 
root@ubuntu:/etc/bind/# cp db.127 db.website2 
root@ubuntu:/etc/bind/# cp db.127 db.website3

edit file named.conf.local

root@ubuntu:/etc/bind/# nano /etc/bind/named.conf.local

lalu masukan script seperti dibawah ini

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "website1.com" IN {
        type master;
        file "/etc/bind/db.website1";
};

zone "website2.com" IN {
        type master;
        file "/etc/bind/db.website2";
};

zone "website3.com" IN {
        type master;
        file "/etc/bind/db.website3";
};

zone "60.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/db.website";
};

Lalu edit file db.website1

root@ubuntu:/etc/bind/# nano db.website1

; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.website1.com. root.website1.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.website1.com.
@       IN      A       192.168.60.222
@       IN      MX      10      mail.website1.com.
ns      IN      A       192.168.60.222
www     IN      CNAME   ns
mail    IN      A       192.168.60.222 

Lalu edit file db.website2

root@ubuntu:/etc/bind/# nano db.website2

; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.website2.com. root.website2.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.website2.com.
@       IN      A       192.168.60.222
@       IN      MX      10      mail.website2.com.
ns      IN      A       192.168.60.222
www     IN      CNAME   ns
mail    IN      A       192.168.60.222

Lalu edit file db.website3

root@ubuntu:/etc/bind/# nano db.website3

; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.website3.com. root.website3.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.website3.com.
@       IN      A       192.168.60.222
@       IN      MX      10      mail.website3.com.
ns      IN      A       192.168.60.222
www     IN      CNAME   ns
mail    IN      A       192.168.60.222

Lalu edit file db.website

root@ubuntu:/etc/bind/# nano db.website

; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.website1.com. root.website1.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.website1.com.
@       IN      NS      ns.website2.com.
@       IN      NS      ns.website3.com.
1       IN      PTR     ns.website1.com.
1       IN      PTR     ns.website2.com.
1       IN      PTR     ns.website3.com.
1       IN      PTR     www.website1.com
1       IN      PTR     www.website2.com
1       IN      PTR     www.website3.com
1       IN      PTR     mail.website1.com
1       IN      PTR     mail.website2.com
1       IN      PTR     mail.website3.com
 

Simpan perubahan dengan menekan CTRL + X, lalu tekan Y, lalu Enter. Lalu restart service dari Bind9 ini agar seluruh konfigurasi diatas dapat berjalan. Untuk merestartnya, ketikkan perintah

root@ubuntu:/etc/bind/# etc /init.d/bind9 restart

Untuk pengetesan jalankan perintah berikut

root@ubuntu:/etc/bind/# nslookup website1.com
root@ubuntu:/etc/bind/# nslookup website2.com
root@ubuntu:/etc/bind/# nslookup website3.com

Jika berhasil DNS akan mengarah ke IP Server 192.168.60.222


cara setting virtual host di ubuntu server 16.04

Untuk pengetesan dari komputer client saya mengarahkan ke IP DNS Server yaitu 192.168.60.222


cara setting virtual host di ubuntu server 16.04

Untuk pengetesan silahkan jalankan perintah nslookup dan ping


cara setting virtual host di ubuntu server 16.04

Lakukan test ping ke website1.com website2.com dan website3.com jika berhasil maka website tersebut akan mengarah ke IP 192.168.60.222 lakukan juga test ke www.website1.com dan mail.website1.com


cara setting virtual host di ubuntu server 16.04

Baca Juga : Cara Install Ubuntu Server 16.04
Baca Juga : Cara Install Apache, PHP, MySQL, Phpmyadmin di Ubuntu 16.04

STEP 4 - Konfigurasi Web-Server

Selanjutnya kita akan membuat tiga buah direktori di /var/www/html/ untuk menempatkan website kita yaitu website1 untuk website1.com website2 untuk website2.com dan website3 untuk website3.com jalankan perintah berikut.

root@ubuntu:~# mkdir /var/www/html/website1
root@ubuntu:~# mkdir /var/www/html/website2
root@ubuntu:~# mkdir /var/www/html/website3

Masuk pada direktori website1 lalu buat file index.html

root@ubuntu:~# cd /var/www/html/website1
root@ubuntu:/var/www/html# touch index.html
root@ubuntu:/var/www/html# nano index.html

lalu masukan script berikut ini.

<html>
        <title>website1.com</title>
        <body>
                <div style="width: 100%; font-size :40px; text-align:center">
                TEST PAGE www.website1.com
                </div>
        </body>
</html>

lakukan juga hal yang sama pada website2 dan website3 masuk pada direktori website2 lalu buat file index.html

root@ubuntu:~# cd /var/www/html/website2
root@ubuntu:/var/www/html# touch index.html
root@ubuntu:/var/www/html# nano index.html

lalu masukan script berikut ini.

<html>
        <title>website2.com</title>
        <body>
                <div style="width: 100%; font-size :40px; text-align:center">
                TEST PAGE www.website2.com
                </div>
        </body>
</html>

Masuk pada direktori website3 lalu buat file index.html

root@ubuntu:~# cd /var/www/html/website3
root@ubuntu:/var/www/html# touch index.html
root@ubuntu:/var/www/html# nano index.html

lalu masukan script berikut ini.

<html>
        <title>website3.com</title>
        <body>
                <div style="width: 100%; font-size :40px; text-align:center">
                TEST PAGE www.website3.com
                </div>
        </body>
</html>

STEP 5 - Setting Virtual-Host

OK Langkah selanjutnya kita akan setting Virtual host, ikuti langkah langkah berikut.

root@ubuntu:~# touch /etc/apache2/sites-available/website1.conf
root@ubuntu:~# touch /etc/apache2/sites-available/website2.conf
root@ubuntu:~# touch /etc/apache2/sites-available/website3.conf

Edit file website1.conf untuk website1.conf

root@ubuntu:~# nano /etc/apache2/sites-available/website1.conf

<VirtualHost *:80>
        ServerName website1.com
        ServerALias www.website1.com
        ServerAdmin webmaster@website1.com
        DocumentRoot /var/www/html/website1
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> 

Edit file website2.conf untuk website2.com

root@ubuntu:~# nano /etc/apache2/sites-available/website2.conf

<VirtualHost *:80>
        ServerName website2.com
        ServerALias www.website2.com
        ServerAdmin webmaster@website2.com
        DocumentRoot /var/www/html/website2
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Edit file website3.conf untuk website3.com

root@ubuntu:~# nano /etc/apache2/sites-available/website3.conf

<VirtualHost *:80>
        ServerName website3.com
        ServerALias www.website3.com
        ServerAdmin webmaster@website3.com
        DocumentRoot /var/www/html/website3
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Aktifkan Virtual host

root@ubuntu:~# cd /etc/apache2/sites-available
root@ubuntu:/etc/apache2/sites-available# a2ensite website1.conf
root@ubuntu:/etc/apache2/sites-available# a2ensite website2.conf
root@ubuntu:/etc/apache2/sites-available# a2ensite website3.conf

Lalu restart webserver

root@ubuntu:/etc/apache2/sites-available# service apache2 restart

Untuk pengetesan buka browser lalu masukan pada url http://www.website1.com


cara setting virtual host di ubuntu server 16.04

 Buka tab baru pada browser lalu masukan  pada url http://www.website2.com


cara setting virtual host di ubuntu server 16.04

Selanjutnya untuk website3.com buka tab baru lalu masukan  pada url http://www.website3.com


cara setting virtual host di ubuntu server 16.04

STEP 6 - Install SSL-Certificate

Pertama kita aktifkan ssl dengan perintah di bawah ini

root@ubuntu:~# a2enmod ssl
root@ubuntu:~# service apache2 restart

Buat direktori untuk penyimpanan ssl dan install ssl pada direktori penyimpanan ssl

root@ubuntu:~# mkdir /etc/apache2/ssl-web
root@ubuntu:~# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl-web/apache.key -out /etc/apache2/ssl-web/apache.crt

*** Isi Keterangan di bawah ini ya bro..

Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:Nama Propinsi
Locality Name (eg, city) []:Kota Anda
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Nama PT
Organizational Unit Name (eg, section) []: Nama departement
Common Name (e.g. server FQDN or YOUR name) []:domainanda.com
Email Address []:email_anda@domainanda.com

Selanjutnya buat file ssl pada direktori /etc/apache2/sites-available/

root@ubuntu:~# cd /etc/apache2/sites-available/
root@ubuntu:/etc/apache2/sites-available# touch ssl-website.conf
root@ubuntu:/etc/apache2/sites-available# nano ssl-website.conf 

Masukan script dibawah ini.

<IfModule mod_ssl.c>
    <VirtualHost 192.168.60.222:443>
        ServerAdmin admin@website1.com
        ServerName website1.com
        ServerAlias www.website1.com
        DocumentRoot /var/www/html/website1
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl-web/apache.crt 
        SSLCertificateKeyFile /etc/apache2/ssl-web/apache.key
    </VirtualHost>
</IfModule>

<IfModule mod_ssl.c>
    <VirtualHost 192.168.60.222:443>
        ServerAdmin admin@website2.com
        ServerName website2.com
        ServerAlias www.website2.com
        DocumentRoot /var/www/html/website2
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl-web/apache.crt 
        SSLCertificateKeyFile /etc/apache2/ssl-web/apache.key
    </VirtualHost>
</IfModule>

<IfModule mod_ssl.c>
    <VirtualHost 192.168.60.222:443>
        ServerAdmin admin@website3.com
        ServerName website3.com
        ServerAlias www.website3.com
        DocumentRoot /var/www/html/website2
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl-web/apache.crt 
        SSLCertificateKeyFile /etc/apache2/ssl-web/apache.key
    </VirtualHost>
</IfModule> 

Selanjutnya adalah mengaktifkan ssl nya jalankan perintah berikut.

root@ubuntu:/etc/apache2/sites-available# a2ensite ssl-website.conf
root@ubuntu:/etc/apache2/sites-available# service apache2 reload
root@ubuntu:/etc/apache2/sites-available# service apache2 restart

Untuk pengetesan buka browser lalu masukan pada url https://www.website1.com


cara setting virtual host di ubuntu server 16.04

klik pada Add Exception


cara setting virtual host di ubuntu server 16.04

lalu klik Confirm Security Exception


cara setting virtual host di ubuntu server 16.04

Lakukan juga hal yang sama pada website2.com dan website3.com. Demikian kira-kira artikel Cara setting virtual host di Ubuntu 16.04 ini saya buat. Semoga bermafaat untuk kita semua. Silahkan Share Jika sobat merasa postingan ini bermanfaat. Sekian & Terimakasih Salam.

3 komentar untuk "cara setting virtual host di ubuntu server 16.04"