Tutorial Konfigurasi Multiple Webserver pada satu server Linux ubuntu 20.04

IDCloudHost | SSD Cloud Hosting Indonesia

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.2
root@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

Leave a Reply

Your email address will not be published. Required fields are marked *