Script Proxy Host Domain - Proxy Banyak Domain Ke Banyak Aplikasi Node Dalam Satu Sever VPS

Jadi ceritanya saya menjalankan banyak aplikasi nodejs dalam satu server vps. Aplikasi - aplikasi ini berjalan pada port yang berbeda - beda. Liha gambar dibawah, saya memiliki 4 aplikasi nodejs yang berjalan pada satu vps dengan masing-masing aplikasi berjalan pada port 8080, 8081, 8082, dan 8083.

aplikasi yang berjalan pada port berbeda di satu server vps
Selain itu, saya juga memiliki 4 domain yaitu :

domain-1.com
domain-2.com
domain-3.com
domain-4.com

Dimana saya ingin mengarahkan masing-masing domain ke masing-masing aplikasi, sebagai berikut :

domain-1.com => aplikasi 1
domain-2.com => aplikasi 2
domain-3.com => aplikasi 3
domain-4.com => aplikasi 4

Nah, yang jadi masalah adalah "Propagasi (pengkait-an) domain ke aplikasi server vps hanya bisa di arahkan ke ip vps pada port 80", sedangkan aplikasi kita berjalan di port selain 80.

Jika kita mengarahkan domain ke ip server melalui DNS management, biasanya pengarahan ini hanya ditujukan pada ip-nya saja tanpa spesifik ke port mana yang dituju. Untuk lebih memahami, silahkan lihat perbedaan 2 gambar berikut :

A. Gambar pointing domain yang benar

gambar pointing domain yang benar

B. Gambar pointing domain yang salah

Gambar pointing domain yang salah

Nah, bagaimana mengatasinya ?

Disini saya memiliki sebuah server vps dengan alamat ip (hanya ip contoh) sebagai berikut :

123.456.789.10

Selanjutnya, 4 domain sebelumnya akan saya arahkan ke satu alamat ip server ini, sehingga alur pointingnya menjadi seperti berikut :

domain-1.com => 123.456.789.10
domain-2.com => 123.456.789.10
domain-3.com => 123.456.789.10
domain-4.com => 123.456.789.10

Selanjutnya saya akan menjalankan Script Proxy Host Domain di dalam server vps ini. Nantinya script ini akan mengatur domain yang terpointing menuju ke masing-masing aplikasi (4 aplikasi) yang sedang berjalan pada vps. Lihat alur gambar berikut :

alur pointing domain

Nah, dengan cara ini saya bisa menjalankan 4 aplikasi web di dalam 1 server vps yang masing-masing aplikasi memiliki domain akses yang berbeda beda.

Sebenarnya kita bisa menggunakan aplikasi proxy web server seperti nginx, apache, lighttpd, openliteserver, dll. Namun disini saya telah meracik script nodejs sederhana yang fungsinya tidak beda jauh dengan aplikasi proxy web server lain.

Panduan Instalasi Script

1. Silahkan buka file "host-domain-proxy.rar" lalu extract isinya.

2. Di server vps kamu, silahkan install nodejs.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

source ~/.bashrc

nvm install v16.14.2

3. Setelah nodejs terpasang, silahkan install pm2.

npm install pm2 -g

4. Upload folder "host-domain-proxy" yang telah kamu extract sebelumnya ke daalam server vps.

5. Selanjutnya lakukan cd ke folder "host-domain-proxy" yang telah kamu upload tadi.

6. Lakukan instalasi package

npm install

7.  Setelah itu buka file "config.json". Isi file secara default adalah seperti berikut :

{
    "port-listener": 80,
    "timeout-waitting-proxy": 10000,
    "rute-destination-default": {
        "protocol": "http:",
        "host": "127.0.0.1",
        "port": 8081
    },
    "rute-destination-costom": [{
        "host-domain": "www.domain-1.com",
        "rute-proxy": {
            "protocol": "http:",
            "host": "127.0.0.1",
            "port": 8082
        }
    }]
}

Catatan :

Dalam kasus saya ini memiliki 4 domain dan 4 aplikasi, yang mana saya ingin melakukan rute domain ke masing-masing aplikasi, jadi script "config.json" nya adalah seperti berikut :

{
    "port-listener": 80,
    "timeout-waitting-proxy": 10000,
    "rute-destination-default": {
        "protocol": "http:",
        "host": "127.0.0.1",
        "port": 8080
    },
    "rute-destination-costom": [{
            "host-domain": "www.domain-1.com",
            "rute-proxy": {
                "protocol": "http:",
                "host": "127.0.0.1",
                "port": 8080
            }
        },
        {
            "host-domain": "www.domain-2.com",
            "rute-proxy": {
                "protocol": "http:",
                "host": "127.0.0.1",
                "port": 8081
            }
        },
        {
            "host-domain": "www.domain-3.com",
            "rute-proxy": {
                "protocol": "http:",
                "host": "127.0.0.1",
                "port": 8082
            }
        },
        {
            "host-domain": "www.domain-4.com",
            "rute-proxy": {
                "protocol": "http:",
                "host": "127.0.0.1",
                "port": 8083
            }
        }
    ]
}


Jika sudah kita setting file "config.json" tersebut, selanjutnya kita jalankan perintah berikut :

npm start

Selesai.


Catatan

  1. Sebelum menjalankan script ini, pastikan aplikasi kamu telah berjalan pada port yang telah kamu tentukan.
  2. Script hanya bisa di dapatkan melalui developer dengan membelinya seharga Rp.100,000.
  3. Jika kamu bingung untuk memasangnya, silahkan minta bantuan ke developer. Biaya pasang sebesar Rp 50.000,.
  4. Script yang telah dibeli tidak dapat dikembalikan.