Cara Deploy Aplikasi Express.js di CentOS 7

Sebelumnya saya telah menulis artikel tutorial tentang cara deploy aplikasi Node.js di CentOS 7. Sekarang masih berhubungan dengan Node.js yaitu deploy Express.js yang merupakan framework berbasis Node.js. Secara umum sama saja dengan native Node.js, yang berbeda hanya instalasi Express.js.

-Buat User Baru-

Membuat user baru untuk aplikasi Express.js.

[INPUT]

1 2 3 sudo useradd appexp sudo passwd appexp sudo usermod -aG wheel appexp

-Install Node.js-

Download dan install Node.js.

[INPUT]

1 2 3 4 $ wget -c https://nodejs.org/dist/v10.14.2/node-v10.14.2-linux-x64.tar.xz $ tar xvf node-v10.14.2-linux-x64.tar.xz sudo mkdir /usr/local/lib/nodejs sudo cp -Rv node-v10.14.2-linux-x64 /usr/local/lib/nodejs/10.14.2

Buat link Node.js agar tersedia untuk semua user.

[INPUT]

1 2 3 sudo ln -s /usr/local/lib/nodejs/10.14.2/bin/node /usr/bin/node sudo ln -s /usr/local/lib/nodejs/10.14.2/bin/npm /usr/bin/npm sudo ln -s /usr/local/lib/nodejs/10.14.2/bin/npx /usr/bin/npx

Uji hasil instalasi Node.js dengan menjalankan perintah mengecek versi.

[INPUT]

1 2 3 4 $ node -v v10.14.2 $ npm -v 6.4.1

Selanjutnya lakukan instalasi Express.js.

[INPUT]

1 2 sudo npm install -g express-generator sudo ln -s /usr/local/lib/nodejs/10.14.2/lib/node_modules/express-generator/bin/express-cli.js /usr/bin/express

Lalu membuat project Express.js.

[INPUT]

1 2 3 $ express myappexp $ cd myappexp $ npm install

Mencoba menjalankan server Node.js pada aplikasi Express.js.

[INPUT]

1 $ node ./bin/www

Cek di browser dengan mengakses *http://ip-server:3000*. Hasilnya seperti pada gambar di bawah ini. Untuk menghentikan server Node.js tekan /CTRL+C/.

Aplikasi Express.js pada port 3000

-Install PM2-

Selanjutnya install PM2.

[INPUT]

1 2 3 sudo npm install pm2 -g sudo ln -s /usr/local/lib/nodejs/10.14.2/lib/node_modules/pm2/bin/pm2 /usr/bin/pm2 $ pm2 -v

Jalankan aplikasi Express.js dengan PM2.

[INPUT]

1 2 $ cd ~/myexpapp $ pm2 start bin/www

Setelah perintah PM2 dijalankan akan menampilkan status seperti di bawah ini.

[INPUT]

1 2 3 4 5 6 7 [PM2] Starting /home/appexp/myappexp/bin/www in fork_mode (1 instance) [PM2] Done. “”Œ””€””€””€””€””€””€””¬””€””€””€””€””¬””€””€””€””€””€””€””€””¬””€””€””€””€””€””€””€””€””¬””€””€””€””€””€””€””€””€””¬””€””€””€””€””€””¬””€””€””€””€””€””€””€””€””¬””€””€””€””€””€””€””€””€””€””€””€”” “”‚ Name “”‚ id “”‚ mode  “”‚ status “”‚ “†º      “”‚ cpu “”‚ memory “”‚ “”œ””€””€””€””€””€””€””¼””€””€””€””€””¼””€””€””€””€””€””€””€””¼””€””€””€””€””€””€””€””€””¼””€””€””€””€””€””€””€””€””¼””€””€””€””€””€””¼””€””€””€””€””€””€””€””€””¼””€””€””€””€””€””€””€””€””€””€””€””¤ “”‚ www  “”‚   “”‚ 0.0.0 “”‚ fork   “”‚ online “”‚    “”‚ %     “”‚ 15.0 MB   “”‚ “””””€””€””€””€””€””€””´””€””€””€””€””´””€””€””€””€””€””€””€””´””€””€””€””€””€””€””€””€””´””€””€””€””€””€””€””€””€””´””€””€””€””€””€””´””€””€””€””€””€””€””€””€””´””€””€””€””€””€””€””€””€””€””€””€””˜

Aktifkan service PM2 agar otomatis jalan pada saat boot.

[INPUT]

1 sudo pm2 startup systemd

Perintah-perintah PM2 untuk manajemen proses aplikasi Node.js:

Tampilkan semua aplikasi Node.js yang dikelola oleh PM2.

[INPUT]

1 $ pm2 list

Tampilkan informasi aplikasi.

[INPUT]

1 $ pm2 info www

Restart aplikasi.

[INPUT]

1 $ pm2 restart www

Stop aplikasi.

[INPUT]

1 $ pm2 stop www

Menghapus aplikasi dari status PM2.

[INPUT]

1 $ pm2 delete id-aplikasi

Monitoring proses dan penggunaan resource oleh aplikasi Node.js.

[INPUT]

1 $ pm2 monit

-Konfigurasi Nginx-

Selanjutnya adalah melakukan install dan konfigurasi Nginx sebagai reverse proxy server.

Install Nginx.

[INPUT]

1 2 sudo yum install epel-release -y sudo yum install nginx -y

Konfigurasi Nginx.

[INPUT]

1 sudo nano /etc/nginx/nginx.conf

Cari baris kode

[INPUT]

1 2 location / { }

Ubah menjadi seperti di bawah ini

[INPUT]

1 2 3 4 5 6 7 8 location / {     proxy_pass http://127.0.0.1:3000;     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; }

Restart Nginx.

[INPUT]

1 2 3 sudo systemctl enable nginx sudo systemctl restart nginx sudo systemctl status nginx

Sekarang uji dengan mengakses *http://ip-server*.

Aplikasi Express.js pada port 80 Nginx

Agar aplikasi dapat berjalan pada saat startup.

[INPUT]

1 $ pm2 startup -u appexp

Ditampilkan perintah untuk membuat variabel environment. Jalankan perintah tersebut.

[INPUT]

1 sudo env PATH=$PATH:/usr/local/lib/nodejs/10.14.2/bin pm2 startup systemd -u appexp –hp /home/appexp

Sekian tutorial deploy aplikasi Express.js di CentOS 7, semoga bisa membantu teman-teman developer Node.js.

Selamat mencoba 🙂

Leave a Reply

Your email address will not be published.