Azis Hapidin
Set Up Domain dan NGINX Server Block di VPS Ubuntu

Jika kita pernah menggunakan Apache atau XAMPP (didalamnya ada Apache) mungkin kita pernah mendengar istilah Virtual Host, nah kurang lebih Server Block ini adalah semacam Virtual Host. Yaitu sebuah metode untuk menajalankan banyak domain atau website dalam 1 web server.

Setelah sebelumnya kita membahas Setup VPS (Droplets) dan Install NGINX di DigitalOcean, pada tutorial kali ini kita akan membahas step by step bagaimana setup NGINX Server Block di sebuah VPS yang menggunakan OS Ubuntu 18.04.

Persiapan

Sebelum kita bahas lebih jauh lagi, saya asumsikan teman-teman sudah menyiapkan beberapa hal dibawah:

  • Sebuah VPS dengan OS Ubuntu dan sudah terinstall NGINX, walaupun NGINX Server Block ini bisa juga dijalankan di local tapi pada contoh kali ini saya akan membahas setup di kasus real yaitu di VPS. Jika bagian ini belum siap temen-temen bisa baca-baca dulu disini.
  • 1 atau lebih domain/subdomain dengan Akses DNS Zone Editor (harus bisa save A Record), jika penyedia domain tidak menyediakan DNS Zone Editor maka teman-teman bisa menggunakan layanan DNS Zone Editor dari CloudFlare. Dalam contoh di artikel ini pun saya menggunakan CloudFlare. Jika belum familiar dengan CloudFlare bisa baca-baca tutorial ini: https://support.cloudflare.com/hc/en-us/articles/201720164-Creating-a-Cloudflare-account-and-adding-a-website

Perencanaan

Pada contoh disini kita akan membuat 2 buah website yaitu satu.azishapidin.com dan juga dua.azishapidin.com dalam sebuah server yang sudah diinstall Ubuntu dan NGINX.

Setting DNS Domain ke Server

Langkah pertama adalah kita harus setting DNS domain yang akan kita arahkan tadi ke IP Server kita, berikut contohnya jika menggunakan DNS CloudFlare:

Membuat Konfigurasi Server Block untuk masing-masing Domain

Setelah DNS domain diarahkan ke IP Server kita, maka selanjutnya kita harus membuat script untuk handle domain tersebut di NGINX yang ada di server kita.

Konfigurasi website satu.azishapidin.com

Pertama kita buat dahulu direktori untuk website satu, silahkan buat direktori dimana saja, tapi saya disini akan membuat direktorinya di /var/www/satu kemudian isi file index.html dengan menjalankan perintah dibawah:

mkdir /var/www/satu
nano /var/www/satu/index.html

Kemudian kita isi file index.html dengan script sederhana seperti dibawah:

<html>
    <head>
        <title>Welcome to satu.azishapidin.com!</title>
    </head>
    <body>
        <h1>satu.azishapidin.com working!</h1>
    </body>
</html>

Gunakan CTRL + X untuk keluar dari nano.

Setelah itu pada direktori /etc/nginx/sites-available/ kita buat file konfigurasi bernama satu.azishapidin.com:

cd /etc/nginx/sites-available
nano satu.azishapidin.com

Kemudian kita isi seperti ini:

server {
        listen 80;
        listen [::]:80;
 
        root /var/www/satu;
        index index.html;
 
        server_name satu.azishapidin.com;
 
        location / {
                try_files $uri $uri/ =404;
        }
}
 

Perhatikan pada baris 5, /var/www/satu adalah direktori root untuk web satu.azishapidin.com. Sedangkan pada baris 8 satu.azishapidin.com adalah nama domain untuk web kita. Silahkan sesuaikan kedua nilai ini dengan direktori dan domain teman-teman. Seperti biasa gunakan CTRL + X untuk keluar dari nano.

Setelah itu kita harus enable web kita dengan membuat symbolic link dari file konfigurasi diatas tadi ke folder /etc/nginx/sites-enabled menggunakan perintah dibawah:

sudo ln -s /etc/nginx/sites-available/satu.azishapidin.com /etc/nginx/sites-enabled/

Kemudian kita jalankan perintah dibawah untuk memastikan bahwa konfigurasi nginx kita tidak ada masalah:

sudo nginx -t

Jika tidak ada masalah harusnya muncul pesan seperti ini:

JIka sudah oke, kita restart nginx dengan menjalankan perintah dibawah:

sudo systemctl restart nginx

Sekarang kita coba buka satu.azishapidin.com maka harusnya web kita sudah jalan:

Membuat website dua.azishapidin.com

Untuk membuat web dua.azishapidin.com kita cukup ulangi semua perintah pada bagian sebelumnya. Sekalian latihan. Good Luck 😀

Jika tidak ada masalah harusnya bisa sampai muncul tampilan seperti ini:

Penutup

Kesimpulannya adalah jika kita ingin menggunakan NGINX Server Block maka kita cukup pointing DNS Domain kita ke IP Server, kemudian kita buat konfigurasi NGINX-nya di Server kita.

Selanjutnya kita tinggal main-main di konfigurasi NGINX tersebut, mulai dari:

  • Menjalankan App berbasis PHP.
  • Menjalankan App berbasis NodeJS, Python, Java, dsb.
  • Instalasi SSL Certificate / HTTPS.
  • Melakukan Load Balancing.
  • Dan hal-hal menarique lainnya.

Terima kasih atas kunjungannya, semoga bermanfaat. Jika ada yang perlu didiskusikan silahkan corat-coret di kolom komentar.