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.

  • Pertama kita harus login vps kita melalui terminal, ketikan perintah berikut

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

  • Update repository anda menggunakan perintah
  • Install NodeJS, tambahkan source package nodejs menggunakan perintah berikut pada terminal
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

Setelah itu jalankan perintah :

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

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
  • lalu masukan source code berikut untuk membuat server dengan port 8080
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/');

Ganti IP 31.220.111.123 dengan IP Address milik anda

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

  • Jalankan server yang sudah kita buat menggunakan perintah berikut
  • Untuk menjalankan aplikasi kita dapat membuka browser dan mengetikan url http://31.220.111.123:8080/ atau dengan perintah
curl http://31.220.111.123:8080

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.

  • Install PM2 pada Ubuntu gunakan perintah berikut
  • Jalankan server menggunakan PM2 dengan mengetikan perintah
  • Setelah itu check menggunakan perintah

Install Nginx

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

  • Install Nginx pada Ubuntu Server menggunakan perintah berikut
sudo apt-get install nginx
  • Buka file default pada sites-available nginx dengan editor nano
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.

  • Restart Nginx dengan mengetikan perintah :
sudo service nginx restart

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

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

  • Install NodeJS runtime
  • Setup Note App
  • Install & Konfigurasi PM2

Web Server

  • Install Nginx
  • Konfigurasi reverse proxy

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


Originally published at ekaprasasti.com.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.