Setup Production Applikasi NodeJS di Ubuntu Server

Pada kesempatan kali ini kita akan belajar bagaimana caranya mendeploy aplikasi berbasis NodeJS di server VPS yang kita miliki.

Saat ini di negara tercinta kita Indonesia belum ada hosting yang menyediakan layanannya berbasis NodeJS, sehingga kita harus mensetup secara manual aplikasi kita di VPS (Virtual Private Server).

Install NodeJS

NodeJS merupakan sebuah environment berbasis javascript yang berjalan di sisi server (server side). Kita semua tau javascript merupakan bahasa pemrograman yang berjalan di sisi client (client side), tetapi menggunakan NodeJS memungkinkan javascript di eksekusi pada sisi server.

Ganti IP 31.220.111.123 dengan IP milik anda, lalu di minta password dan masukan password anda untuk dapat login ke vps anda.

apt-get update
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

Setelah itu jalankan perintah :

apt-get install nodejs

Setelah terinstall, untuk mengecek apakah nodejs sudah terinstall pada ubuntu server kita gunakan perintah :

node -v

node-version

Jika sudah terinstall akan muncul versi nodejs yang kita gunakan.

Setup Node App

Kita akan mencoba aplikasi sederhana menggunakan nodejs. Buat sebuah file dengan nama server.js dan edit menggunakan editor nano dengan mengetikan perintah berikut

nano server.js
var http = require('http');
http.createServer(function(req, res) {
   res.writeHead(200, {'Contect-type': 'text/plain'});
   res.end('Hello World\n');
}).listen(8080, '31.220.111.123');
console.log('server running at http://31.220.111.123:8080/');

server.js

Ganti IP 31.220.111.123 dengan IP Address milik anda

Lalu ketik ctrl + x dan y untuk menyimpan code yang sudah kita ketikan.

node server.js

test-node-app

curl http://31.220.111.123:8080

browser-test

curl-test

Install & Konfigurasi PM2

PM2 merupakan Production Proccess Manager untuk nodejs. Dengan PM2 kita tidak perlu menjalankan manual server menggunakan node server.js, PM2 mampu membuatnya otomatis, juga jika terjadi perubahan pada VPS PM2 dapat merestart otomatis server kita.

sudo npm install pm2 -g
pm2 start server.js
pm2 status

pm2-status

Install Nginx

Nginx menurut mbah wikipedia adalah server HTTP dan Proxy dengan kode sumber terbuka yang bisa juga berfungsi sebagai proxy IMAP/POP3.

sudo apt-get install nginx
sudo nano /etc/nginx/sites-available/default

lalu masukan kode berikut ini

server {
    listen 80;

    server_name erabelajar.com;

    location / {
        proxy_pass http://31.220.111.123:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Ganti erabelajar.com dengan nama domain anda dan 31.220.111.123 dengan IP address anda.

Lalu ketik ctrl + x dan y untuk menyimpan code yang sudah kita ketikan.

sudo service nginx restart

setelah itu kita akan mendapatkan notikasi bahwa konfigurasi kita sudah benar dan dapat berjalan

* Restarting nginx nginx

Langkah terkahir buka browser dengan mengetikan erabelajar.com atau ip address 31.220.111.123 tanpa lagi menggunakan port 8080.

Kesimpulan

Pada pembahasan kita kali terdapat 5 langkah dan terbagi menjadi 2 yaitu App Server dan Web Server.

App Server

Web Server

Ok, selamat mencoba dan semoga ilmu yang saya bagi di sini bermanfaat. see ya!