Pada tutorial kali ini kita akan membahas tentang bagaimana cara membuat multiple atau lebih dari satu webserver yang berjalan hanya dalam 1 mesin server (VM).
Untuk konfigurasi ini memerlukan service webserver, custom html directory dan service dns server. Jadi pastikan anda telah melakukan konfigurasi untuk service-service tersebut. pada tutorial ini kita akan melakukan konfigurasi untuk 1 domain dan subdomain yang sama. untuk pembahasan multiple webserver dengan domain yang berbeda akan kita bahas di next article. sebagai contoh kita memerlukan service dengan domain utama yaitu taufiknurhuda.com dan subdomain portal.taufiknurhuda.com pada satu VM.
Pastikan ip address sudah dikonfigurasi pada server linux :
Lakukan Update system :
root@Taufik:~# apt-get update
Install paket webserver :
root@Taufik:~# apt-get install apache2 php7.4 libapache2-mod-php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-imap php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-zip
Install DNS Server service link bisa cek pada link berikut How To Configure DNS Server ubuntu server 20.04 LTS. Untuk IP Address, sesuaikan dengan ip address yang anda gunakan.
Jangan lupa untuk mengkonfigurasi resolv.conf dan hosts :
Konfigurasi resolv.conf
root@Taufik:~# nano /etc/resolv.conf
Tambahkan konfigurasi sebagai berikut :
GNU nano 4.8 /etc/resolv.conf # This file is managed by man:systemd-resolved(8). Do not edit. # # See man:systemd-resolved.service(8) for details about the supported modes of # operation for /etc/resolv.conf. nameserver 10.0.0.2
Konfigurasi Host :
root@Taufik:~# nano /etc/hosts
Konfigurasi host sebagai berikut :
127.0.0.1 localhost 127.0.1.1 taufiknurhuda.com 10.0.0.2 taufiknurhuda.com # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
KONFIGURASI DNS SERVER
root@Taufik:~# nano /etc/bind/named.conf.local
Tambahkan konfigurasi sebagai berikut. perhatikan pada zone 0.0.10,ini merupakan network untuk ip server 10.0.0.2 di tulis secara terbaik.
// // 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 "taufiknurhuda.com" { type master; file "/etc/bind/db.domain"; }; zone "0.0.10.in-addr.arpa" { type master; file "/etc/bind/db.ip"; };
Ubah directory ke /etc/bind :
root@Taufik:~# cd /etc/bind/ root@Taufik:/etc/bind#
Copy konfigurasi file default db ke db file baru. db.local ke db.domain dan db.127 ke db.ip.
root@Taufik:/etc/bind# cp db.local db.domain root@Taufik:/etc/bind# cp db.127 db.ip root@Taufik:/etc/bind#
Konfigurasi db.domain :
root@Taufik:/etc/bind# nano db.domain
Lakukan konfigurasi sebagai berikut :
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA taufiknurhuda.com. root.taufiknurhuda.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.taufiknurhuda.com. ns IN A 10.0.0.2 @ IN A 10.0.0.2 www IN A 10.0.0.2 portal IN A 10.0.0.2
Konfigurasi db.ip :
root@Taufik:/etc/bind# nano db.domain
Lakukan konfigurasi sebagai berikut. 2 merupakan host id yang digunakan pada ip server 10.0.0.2:
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA taufiknurhuda.com. root.taufiknurhuda.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.taufiknurhuda.com. 2 IN PTR taufiknurhuda.com. 2 IN PTR www.taufiknurhuda.com. 2 IN PTR portal.taufiknurhuda.com.
Restart service bind9:
root@Taufik:~# systemctl restart bind9.service
Lakukan test konfigurasi dns :
root@Taufik:/etc/bind# nslookup taufiknurhuda.com Server: 10.0.0.2 Address: 10.0.0.2#53 Name: taufiknurhuda.com Address: 10.0.0.2root@Taufik:/etc/bind# nslookup portal.taufiknurhuda.com Server: 10.0.0.2 Address: 10.0.0.2#53 Name: portal.taufiknurhuda.com Address: 10.0.0.2
root@Taufik:/etc/bind# nslookup 10.0.0.2 2.0.0.10.in-addr.arpa name = ns.taufiknurhuda.com. 2.0.0.10.in-addr.arpa name = taufiknurhuda.com. 2.0.0.10.in-addr.arpa name = portal.taufiknurhuda.com. 2.0.0.10.in-addr.arpa name = www.taufiknurhuda.com.
Konfigurasi DNS Sukses.
KONFIGURASI WEBSERVER
ubah ke sites-available directory :
root@Taufik:~# cd /etc/apache2/sites-available/ root@Taufik:/etc/apache2/sites-available#
Copy file conf :
root@Taufik:/etc/apache2/sites-available# cp 000-default.conf primarywebsite.conf root@Taufik:/etc/apache2/sites-available# cp 000-default.conf portalwebsite.conf
Konfigurasi primarywebsite.conf :
root@Taufik:/etc/apache2/sites-available# nano primarywebsite.conf
Lakukan konfigurasi sebagai berikut :
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. # ServerName www.example.com ServerAdmin admin@taufiknurhuda.com ServerName taufiknurhuda.com ServerAlias www.taufiknurhuda.com DocumentRoot /var/www/html/primaryweb # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Konfigurasi portalwebsite.conf :
root@Taufik:/etc/apache2/sites-available# nano portalwebsite.conf
Lakukan konfigurasi sebagai berikut :
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. # ServerName www.example.com ServerAdmin admin@taufiknurhuda.com ServerName portal.taufiknurhuda.com ServerAlias portal.taufiknurhuda.com DocumentRoot /var/www/html/portalweb # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Enable file config baru dan disable default file config :
root@Taufik:/etc/apache2/sites-available# a2ensite primarywebsite.conf root@Taufik:/etc/apache2/sites-available# a2ensite portalwebsite.conf root@Taufik:/etc/apache2/sites-available# a2dissite 000-default.conf
Restart apache2 service :
root@Taufik:~# systemctl restart apache2
Ubah Directory to /var/www/html :
root@Taufik:~# cd /var/www/html/ root@Taufik:/var/www/html#
Create example directory html untuk primaryweb and portalweb:
root@Taufik:/var/www/html# mkdir primaryweb root@Taufik:/var/www/html# mkdir portalweb root@Taufik:/var/www/html# ls index.html info.php. portalweb primaryweb root@Taufik:/var/www/html#
Create example html file pada setiap directori :
root@Taufik:/var/www/html# echo "THIS IS PRIMARY WEBSITE" > primaryweb/index.html root@Taufik:/var/www/html# echo "THIS IS PORTAL WEBSITE" > portalweb/index.html
Lakukan local test pada webserver dengan domain menggunakan curl. Jika curl belum di install , install menggunakan apt-get install curl
Perhatikan dan lakukan command berikut :
root@Taufik:~# curl taufiknurhuda.com THIS IS PRIMARY WEBSITE root@Taufik:~# curl www.taufiknurhuda.com THIS IS PRIMARY WEBSITE root@Taufik:~# curl portal.taufiknurhuda.com THIS IS PORTAL WEBSITE root@Taufik:~#
Ketika domain berhasil di panggil, akan menampilkan isi dari html directory yang sesuai dengan apache file config.
Sekarang lakukan test dari sisi client.
Konfigurasi network, Untuk ip dns isi dengan ip server anda.
Bukathe CMD pada client anda dan lakukan test menggunakan nslookup. Pastikan nslookup sukses.
Sekarang test akses webserver dari browser anda.
Konfigurasi sukses