Node.js adalah lingkungan runtime JavaScript open-source, lintas platform, yang dapat digunakan untuk menjalankan JavaScript di luar browser web. Ini paling sering digunakan untuk membangun aplikasi web dengan koneksi dua arah waktu nyata, di mana klien dan server dapat memulai komunikasi, memungkinkan mereka untuk bertukar data secara bebas. Node.js menggunakan model I/O non-pemblokiran berbasis peristiwa yang membuatnya sempurna untuk aplikasi intensif data yang berjalan di seluruh perangkat terdistribusi.
Dalam tutorial ini, kita akan menginstal Node.js dan mengkonfigurasinya untuk dijalankan sebagai server backend; kemudian, kita akan mengkonfigurasi Apache sebagai server proxy frontend untuk Node.js.
Prasyarat
- VPS CentOS 8 baru di Platform Cloud Atlantic.net.
- Kata sandi root yang dikonfigurasi di server Anda.
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih CentOS 8 sebagai sistem operasi dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server CentOS 8 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
dnf update -y
Langkah 2 – Instal Node.js
Anda dapat menginstal repositori Node.js menggunakan perintah berikut:
curl -sL https://rpm.nodesource.com/setup_12.x | bash -
Setelah repositori terinstal, Anda dapat menginstal Node.js hanya dengan menjalankan perintah berikut:
dnf install nodejs -y
Setelah instalasi selesai, Anda dapat memverifikasi versi Node.js yang diinstal dengan perintah berikut:
node -v
Anda akan mendapatkan output berikut:
v12.16.2
Anda juga dapat memeriksa versi NPM dengan perintah berikut:
npm -v
Anda akan mendapatkan output berikut:
6.14.4
Langkah 3 – Buat Contoh Aplikasi Node.js
Pertama, mari kita buat direktori untuk menampung aplikasi Node.js:
mkdir project
Selanjutnya, ubah direktori menjadi project dan buat contoh aplikasi Node.js dengan perintah berikut:
cd project nano app.js
Tambahkan konten berikut:
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Welcome to Node.js Server'); }).listen(8080, "127.0.0.1"); console.log('Server running at http://127.0.0.1:8080/');
Simpan dan tutup file setelah Anda selesai.
Aplikasi Node.js Anda sekarang siap untuk melayani pada port 8080. Selanjutnya, jalankan aplikasi dengan perintah berikut:
node app.js
Anda akan mendapatkan output berikut:
Server running at http://127.0.0.1:8080/
Output di atas menunjukkan bahwa aplikasi Node.js Anda berfungsi dengan baik.
Selanjutnya, tekan CTRL + C untuk menghentikan aplikasi.
Langkah 4 – Instal dan Konfigurasi PM2 untuk Mengelola Aplikasi Node.js
PM2 adalah manajer proses untuk aplikasi Node.js. Ini memungkinkan Anda menjaga aplikasi Node.js tetap hidup selamanya, mengelola Node.js, memuat ulang Node.js tanpa waktu henti, dan memfasilitasi tugas admin sistem umum.
Anda dapat menginstalnya menggunakan NPM seperti yang ditunjukkan di bawah ini:
npm i -g pm2
Setelah menginstal PM2, ubah direktori ke proyek dan mulai aplikasi Node.js dengan PM2 seperti yang ditunjukkan di bawah ini:
pm2 start app.js
Setelah aplikasi berhasil dijalankan, Anda akan mendapatkan output berikut:
------------- __/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____ _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___ _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__ _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___ _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____ _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________ _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________ _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_ _\///______________\///______________\///__\///////////////__ Runtime Edition PM2 is a Production Process Manager for Node.js applications with a built-in Load Balancer. Start and Daemonize any application: $ pm2 start app.js Load Balance 4 instances of api.js: $ pm2 start api.js -i 4 Monitor in production: $ pm2 monitor Make pm2 auto-boot at server restart: $ pm2 startup To go further checkout: http://pm2.io/ ------------- [PM2] Spawning PM2 daemon with pm2_home=/root/.pm2 [PM2] PM2 Successfully daemonized [PM2] Starting /root/project/app.js in fork_mode (1 instance) [PM2] Done. ┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 0 │ app │ default │ N/A │ fork │ 1437 │ 0s │ 0 │ online │ 0% │ 31.1mb │ root │ disabled │ └─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Selanjutnya, aktifkan aplikasi Node.js untuk memulai saat boot dengan perintah berikut:
pm2 startup
Perintah ini akan membuat file layanan systemd untuk aplikasi Node.js dan mengaktifkannya untuk memulai setelah sistem reboot seperti yang ditunjukkan di bawah ini:
[PM2] Init System found: systemd Platform systemd Template [Unit] Description=PM2 process manager Documentation=https://pm2.keymetrics.io/ After=network.target [Service] Type=forking User=root LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin Environment=PM2_HOME=/root/.pm2 PIDFile=/root/.pm2/pm2.pid Restart=on-failure ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect ExecReload=/usr/lib/node_modules/pm2/bin/pm2 reload all ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill [Install] WantedBy=multi-user.target Target path /etc/systemd/system/pm2-root.service Command list [ 'systemctl enable pm2-root' ] [PM2] Writing init configuration in /etc/systemd/system/pm2-root.service [PM2] Making script booting at startup... [PM2] [-] Executing: systemctl enable pm2-root... Created symlink /etc/systemd/system/multi-user.target.wants/pm2-root.service → /etc/systemd/system/pm2-root.service. [PM2] [v] Command successfully executed. +---------------------------------------+ [PM2] Freeze a process list on reboot via: $ pm2 save [PM2] Remove init script via: $ pm2 unstartup systemd
Anda juga dapat membuat daftar aplikasi aktif Anda dengan perintah berikut:
pm2 list
Anda akan mendapatkan output berikut:
┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 0 │ app │ default │ N/A │ fork │ 1437 │ 104s │ 0 │ online │ 0.1% │ 39.7mb │ root │ disabled │ └─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Langkah 5 – Konfigurasi Apache sebagai Proxy Frontend untuk Node.js
Selanjutnya, Anda perlu menginstal dan mengkonfigurasi server web Apache sebagai server frontend untuk mengakses aplikasi Node.js.
Pertama, instal server web Apache dengan perintah berikut:
dnf install httpd -y
Selanjutnya, buat file konfigurasi virtual host Apache untuk aplikasi Node.js dengan perintah berikut:
nano /etc/httpd/conf.d/example.conf
Tambahkan baris berikut:
<VirtualHost *:80> ServerAdmin [email protected] ServerName node.example.com ErrorLog /var/log/httpd/error.log CustomLog /var/log/httpd/access.log combined ProxyRequests On ProxyPass / http://localhost:8080 ProxyPassReverse / http://localhost:8080 </VirtualHost>
Simpan dan tutup file setelah Anda selesai. Kemudian, jalankan server web Apache dan aktifkan untuk memulai saat reboot dengan perintah berikut:
systemctl start httpd systemctl enable httpd
Langkah 6 – Akses Aplikasi Node.js
Pada titik ini, server web Apache dikonfigurasi untuk mengakses aplikasi Node.js. Selanjutnya, buka browser web Anda dan ketik URL http://node.example.com. Anda akan diarahkan ke halaman aplikasi Node.js seperti gambar di bawah ini:
Kesimpulan
Selamat! Anda telah berhasil menerapkan aplikasi Node.js dengan Apache sebagai server frontend. Sekarang Anda dapat mulai membuat aplikasi Node.js untuk lingkungan produksi – coba di hosting VPS dari Atlantic.Net!