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.
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
Untuk pengetesan dari komputer client saya mengarahkan ke IP DNS Server yaitu 192.168.60.222
Untuk pengetesan silahkan jalankan perintah nslookup dan ping
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
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
Buka tab baru pada browser lalu masukan pada url http://www.website2.com
Selanjutnya untuk website3.com buka tab baru lalu masukan pada url http://www.website3.com
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
klik pada Add Exception
lalu klik Confirm Security Exception
mantap terimakasih, jazakallah kahir informasinya gan
BalasHapusSama sama gan makasih udah mampir
Hapusterima kasih gan sangat bermanfaat
BalasHapus