KATEGORI: DNS SERVER LINUX

Membagi Server Nginx berdasarkan path situs

Selain membaginya dengan subdomain, kita juga bisa lakukan berdasarkan path situs.

Do Exploit
7 min readMay 30, 2020
Thumbnail!

WARNING: PAGES USED JUST AS AN EXAMPLE

Kali ini kita akan belajar cara mengonfigurasi forward proxy pada server nginx, keuntungannya apa sih? Kalau menurut saya sih dengan adanya fitur ini maka tentu saja setiap halaman di website memiliki penanganan yang berbeda-beda, maksudnya tidak hanya ditangani oleh salah satu web server.

Proxy juga memiliki arti sendiri yaitu mendistribusikan/membagi beban pada beberapa jenis server, nah di kasus ini proxy dapat menampilkan konten dari situs web yang berbeda-beda, atau meneruskan permintaan HTTP klien ke server lainnya berdasarkan konfigurasi yang dibuat. Berikut topologi yang akan kita gunakan.

Desain gambar oleh https://app.diagrams.net/

Karena kita menggunakan aplikasi virtualisasi seperti VMware, VirtualBox dan lain-lain, maka HOST PC itu adalah sistem operasi utama yang digunakan oleh kita. Contohnya saya menggunakan Windows 10 yang terinstall VMware untuk menginstall lagi sistem operasi server virtual, secara otomatis Windows 10nya akan bertindak sebagai klien.

1. Mengalamatkan IP Address

Kita sepakati dulu IP Address yang digunakan, kalau saya memastikan alamat IP nya sebagai berikut;

  • Mesin 1 ens33 = 192.168.170.1
  • Mesin 1 ens32 = 192.168.180.1
  • Mesin 1 ens34 = Sambungkan mesin 1 nya ke internet, bisa dengan bridge atau NAT. Jika bingung klik disini.
  • Mesin 2 ens33 = 192.168.170.2
  • Mesin 3 ens33 = 192.168.180.2

Sekarang beralih ke mesin 1 untuk mengonfigurasi alamat IP addressnya, ketiklah perintah dibawah;

Mesin 1

Mesin1$ cd

Mesin1$ nano /etc/network/interfaces

CTRL+X+Y+ENTER Untuk keluar dan menyimpan.

Ketik perintah dibawah ini untuk memastikan interface dan IP addressnya sudah aktif;

Mesin1$ service networking restart

Mesin 2;

Lakukan konfigurasi yang sama seperti diatas, pastikan hasilnya seperti gambar dibawah ini.

Mesin 3;

2. Persiapan Sumber Kode Halaman Website

Disini juga kita akan belajar cara menampilkan website diantaranya homepage, artikel dan admin page. Pelajari dahulu struktur direktori dari sumber kode HTML yang akan kita gunakan, yang paling penting memperhatikan adanya index.html, jika kurang tau kegunaanya bisa googling saja langsung ;

Ingat! Kita hanya menampilkannya saja, tidak membuatnya bekerja layaknya website pada umumnya seperti koneksi database, autentikasi dan lainnya. Oke, sekarang download dulu sumber kodenya dari github dengan menggunakan mesin 1 yang tersambung ke internet dan sistem operasi utama;

Mesin1$ apt-get install git -y

Mesin1$ git clone https://github.com/zuramai/vsc-1-result

Mesin1$ git clone https://github.com/kartik-mehra/Mockup-Article

Mesin1$ git clone https://github.com/vc372/cs336AdminPage

Cek dulu list direktori dan file yang ada di dalamnya, Pastikan hasil outputnya seperti gambar dibawah ini;

Mesin1$ ls

Setelah didownload maka sekarang tinggal mengirimkannya ke mesin-mesin yang akan memproduksinya. Sebelum itu kalian perlu install ssh dan mengonfigurasinya, bisa klik disini dan juga membuat user baru agar dapat menjadi gerbang masuk kita melalui ftp. Ketik perintah dibawah ini pada mesin 2 dan 3 dan berikan password “masuk”;

Mesin2$ adduser masuk

Mesin3$ adduser masuk

Beralih lagi ke mesin 1, ketik perintah dibawah ini untuk tersambung ke mesin 2 melalui SFTP. Sintax SFTPnya seperti ini;

  • sftp pengguna@IP_ADDRESS

Mesin1$ sftp masuk@192.168.170.2

> help #Untuk membaca deskripsi perintah yang ada

> put -r Mockup-Article/

> exit

Mesin1$ sftp masuk@192.168.180.2

> put -r cs336AdminPage/

> exit

Sekarang waktunya memastikan folder source code Artikel dan Admin Page ada didalam kedua mesin tersebut;

Mesin2$ cd /home/masuk

Mesin2$ ls

Mesin3$ cd /home/masuk

Mesin3$ ls

Masih ada langkah terakhir yang perlu dilakukan, ketik perintah dibawah ini untuk memindahkan folder source code kedalam direktori /usr/share.

Perlu diketahui juga direktori /usr dipergunakan untuk menyimpan file dan folder pengguna/user yang akan digunakan untuk mengolah sistem, seperti kasus saat ini kita akan menyimpan sumber kode kedalam /usr/share untuk menjadi penyimpanan situs website nanti.

Mesin1$ cp ~/vsc-1-result /usr/share

Mesin2$ cp /home/masuk/Mockup-Article /usr/share

Mesin3$ cp /home/masuk/cs336AdminPage /usr/share

3. Mengonfigurasi Proxy Web Server

Sebelum mengonfigurasinya kalian perlu menginstall paket layanan nginx terlebih dahulu pada semua mesin, klik disini untuk caranya. Jika sudah terinstall, kita akan berpindah ke direktori konfigurasi Nginx dengan mengetik perintah dibawah pada ketiga mesin;

Mesin 1

Mesin1$ cd /etc/nginx/sites-enabled

Setelah berpindah kita perlu cek file yang ada didalamnya, pasti ada file bernama default. Silahkan langsung dihapus saja dengan mengetik perintah dibawah pada ketiga mesin tersebut;

Mesin1$ rm default

Mengapa dihapus? Karena kita akan membuat file konfigurasi kustom yang lebih mudah untuk dipahami. Cukup pembahasannya, mari kita konfigurasi halaman homepage terlebih dahulu yang ada di mesin 1. Ketik perintah dibawah ini untuk membuat konfigurasi terbaru;

Mesin1$ nano ../sites-available/homepage

Isi kontennya seperti gambar dibawah;

CTRL+X+Y+ENTER Untuk keluar dan menyimpan.

Keterangan:

  • listen 80, akan mendengarkan semua paket yang masuk dari port 80/HTTP.
  • root … , menginisiasikan bahwa folder HTMLnya berada pada direktori tersebut.
  • access_log, sistem nginx akan otomatis menulis pada direktori log yang ditentukan jika klien berhasil masuk kedalam situs kita (http_code=200).
  • error_log, sama juga dengan access_log tapi yang membedakannya adalah ketika klien tidak berhasil masuk kedalam situs.
  • location blok, akan berjalan ketika kita melakukan permintaan ke situs http://192.168.170.1:80/artikel/ ataupun http://192.168.170.1:80/admin/ .
  • proxy_pass, setelah kondisi location terpenuhi maka permintaan paket akan diteruskan ke http://192.168.170.2:1080 ataupun http://192.168.180.2:1080 .

Sekarang kita buat symbolic link, ini sama seperti membuat shortcut aplikasi di windows. Saya coba jelaskan dikit ya kegunaanya, jika kalian liat file di /etc/nginx/nginx.conf pasti isi kontennya ada yang mengandung seperti gambar dibawah, itu maksudnya menambahkan file konfigurasi yang ada di /etc/nginx/sites-enabled/.

Kalian juga bisa lihat file homepage yang baru saja dibuat ada di /etc/nginx/sites-available/, nah itulah gunanya membuat symbolic link di folder sites-enabled.

Mesin1$ ln -s ../sites-available/homepage

Mesin 2

Saya asumsikan kalian sudah berada di mesin 2, tapi yang berbeda adalah isi konten filenya. Jika sudah berada di folder nginx ketik perintah dibawah ini;

Mesin2$ nano ../sites-available/artikel

CTRL+X+Y+ENTER Untuk keluar dan menyimpan.

Keterangan:

  • rewrite … , akan memotong request yang mengandung path artikel, contohnya permintaan dari klien mesin 1: http://192.168.170.1/artikel/index.html maka saat diteruskan ke mesin 2 akan menjadi http://192.168.170.2:1080/index.html. Untuk mengetahui lebih lanjut silahkan menghapus baris tersebut lalu bandingkan perbedaannya saat sudah selesai mengonfigurasi semua mesin nanti.

Mesin 3

Masih sama seperti cara tahap mesin 1 dan 2, pastikan kalian sudah berada di folder nginx.

Mesin3$ nano ../sites-available/admin

CTRL+X+Y+ENTER Untuk keluar dan menyimpan.

Tidak perlu dijelaskan lagi mengenai konten didalamnya, karena sebelumnya kita sudah membahas. Jangan lupa melakukan restart pada setiap mesin dengan mengetik perintah dibawah ini;

Mesin1$ service nginx restart

Mesin2$ service nginx restart

Mesin3$ service nginx restart

4. Verifikasi Layanan Nginx

Tidak perlu berlama-lama, pastikan juga kalian sudah terhubung dengan mesin 1 yang menjadi web server utama. Buka browser kalian lalu kunjungi setiap situs dibawah ini, dalam kasus dibawah ini IP Address mesin 1 yang terhubung dengan Sistem Operasi utama adalah 192.168.0.53.

  • Homepage
  • Artikel
  • AdminPage

5. Penanganan Error

Dari angka 1 sampai 10, saya memilih 8 karena sangat yakin kalian pasti menemukan error setelah mengikuti tutorial ini. Pengalaman saya kalau setiap konfigurasi nginx pasti seringnya menemukan error seperti gambar-gambar dibawah, tapi jangan bingung ataupun takut kenapa-napa servernya, lagipula kan ini virtual.

Lakukan ketiga hal ini;

1. Memastikan ulang konfigurasi yang ada, biasanya tidak adanya semicolon( ; ) di akhir baris atau kesalahan penulisan kata.

2. Kalau kalian sedang mengikuti tutorial yang ini, coba bandingkan konfigurasi kalian dengan gambar-gambar file konfigurasi milik saya.

3. Mengecek setiap log yang berkaitan dengan web server nginx (paling ampuh menurut saya).

Jika aman-aman saja, selamat! Kalian sedang beruntung hahaha, namun hal-hal seperti ini juga bukan hanya karena keberuntungan saja, melainkan seberapa dekat diri kita dengan linux server, gampangnya sebut saja sering ngoprek linux server.

Masih berkutik dengan error? Langsung aja kirim pesan di instagram Do.Exploit. Saya akan bantu sebisanya, karena setiap error itu beda-beda pawangnya. Mungkin juga kan saya belum pernah menemukan error seperti masalah kalian, maka dari itu kita bisa belajar sama-sama.

Terakhir selain meneruskannya ke server nginx, kita juga bisa meneruskan ke platform web server lain seperti yang ada di artikel ini.

Learn then Share

--

--

Do Exploit
Do Exploit

Written by Do Exploit

I share stories about what I've learned in the past and now. Let's connect to Instagram! @do.exploit

No responses yet